我有两本工作簿,一本是我的主要概述,另一本是我主要工作簿的精简副本,同事根据他与我们共享列表中列出的人员的联系人用来写笔记。
我想通过检查人员的姓名和身份证是否相同来将我的同事备注复制到适当的列中。所以,我想确保Mike Smith的注释#12被复制到他的行而不是Mike Smith#77的行。
我的想法是做两个循环,一个遍历主要工作表的每一行,然后是特定的主要工作表行,循环遍历所有的工作表行,查找ID和名称的匹配,以及何时找到两者匹配,将备注表中该行中的备注复制到相应列中的主页。
这就是我所拥有的:
Private Sub CommandButton1_Click()
Dim jbBook As Workbook
Dim x As Integer
Dim i As Integer
Set jbBook = Workbooks.Open("C:\...\noteWorkbook.xslx")
For i = 2 To 200
For x = 2 To 200
If Cells(i, 5) = jbBook.Worksheets(1).Cells(x, 5) Then If Cells(i, 16) = jbBook.Worksheets(1).Cells(x, 16) Then Cells(i, 52) = jbBook.Worksheets(1).Cells(i, 34)
Next x
Next i
jbBook.Close
End Sub
答案 0 :(得分:1)
我认为问题在于:
If Cells(i, 5) = jbBook.Worksheets(1).Cells(x, 5) Then
尝试将其更改为
If ActiveWorkbook.Cells(i, 5) = jbBook.Worksheets(1).Cells(x, 5) Then
我相信未引用的Cells()
正在给出错误。当然,你必须改变所有这些。
您也可以考虑将If / Thens分成单独的行,只是为了便于阅读。