VBA进行故障排除,根据两个条件将一个工作簿中的一个单元复制到另一个工作簿中的另一个单元

时间:2015-03-16 18:12:58

标签: excel vba excel-vba

我有两本工作簿,一本是我的主要概述,另一本是我主要工作簿的精简副本,同事根据他与我们共享列表中列出的人员的联系人用来写笔记。

我想通过检查人员的姓名和身份证是否相同来将我的同事备注复制到适当的列中。所以,我想确保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

1 个答案:

答案 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分成单独的行,只是为了便于阅读。