VBA疑难解答,基于两个条件将一个工作簿中的一个单元格复制到另一个工作簿中的另一个单元格

我有两个工作手册,一个是我的主要概述,另一个是我的主要工作手册的一个缩减版本,一个同事根据他与我们共享列表中列出的人的联系,用笔记写下笔记。

我想通过检查人员的姓名和身份是否相同,将我的同事笔记复制到适当的列中。 所以,我想确保Mike Smith的#12音符被复制到他的排中,而不是Mike Smith#77的排。

我的想法是做两个循环,一个遍历主表的每一行,然后对于特定的主表行,循环遍历所有的笔记表行,寻找ID和名称的匹配,并且当它find两者都将笔记中该行中的笔记复制到适当列中的主笔记中。

这是我有:

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 

我相信这个问题是这样的:

 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分为不同的行。