VBA查找并复制旁边的内容

来源:百度知道 编辑:UC知道 时间:2024/05/26 10:10:14
有两个工作表
表1 表2
A B C | A B
姓名1 | 姓名A 98
姓名2 | 姓名4 76
..... | ... ...

要求在表2A列中查找表1中的姓名 把找到的对应成绩填到 表1的B列 没找到的在C列显示 "找不到此人"

表1有1500多个姓名
表2有8000多个姓名 哦!

使用方法:
[如果您知道如何使用宏,可以跳过这一节]
1.为了防止宏被禁用,需要修改安全性设置。具体方法为,在 Excel 中打开“工具”菜单,依次指向 宏 -> 安全性,打开“安全性”对话框,并在“安全级”选项卡中选择“中”。这样您就可以在打开文档时选择是否禁用宏。如果安全级为“高”,那么没有经过签署的宏会被禁用〔就包括自己使用 VBA 编写的函数(宏)〕。
2.打开“工具”菜单,依次指向 宏 -> Visual Basic 编辑器,在出现的 Visual Basic 编辑器中新建一个模块,并在模块中输入代码

全部代码如下:
'注意:由于 VBA 对文档的修改有不可逆转性,因此请注意备份!
Sub AutoFillMarks()
On Error GoTo ErrHandle
Dim shtNames As Worksheet '表 1
Dim shtMarks As Worksheet '表 2
Dim strTemp As String
Dim I As Long
Dim ColMarks As Collection
Dim strSTAT As String
Dim lngRecMiss As Long
Dim strName As String

10
strTemp = InputBox("请输入姓名表(表 1)的名称:")
If strTemp = Empty Then Exit Sub
Set shtNames = ActiveWorkbook.Worksheets.Item(strTemp)

strTemp = InputBox("请输入成绩表(表 2)的名称:")
If strTemp = Empty Then Exit Sub
Set shtMarks = ActiveWorkbook.Worksheets.Item(strTemp)

DoEvents

strST