【发布时间】:2016-07-16 03:10:02
【问题描述】:
上下文: VBA 新手
任务:我在 Worksheet1 中有一个联系人列表,其中包含以下列:姓氏、名字、电子邮件、电话号码等。我在 Worksheet2 中有第二个联系人列表(格式完全相同),其中包含 Worksheet1 联系人列表中找到的 1,000 个姓名中的大约 500 个,但包含更新的联系信息(电子邮件、电话号码等)。我正在尝试编写代码来查找两个工作表中的名称,对于这些名称,从 Worksheet2 复制电子邮件、电话号码等(更新信息)并将其粘贴到 Worksheet2 中的相应位置。
代码:这是我目前所拥有的。它不起作用。
Sub UpdateContacts()
Dim Reference As String
Dim Range As Range
Dim ContactList As Worksheet
Dim UpdatedContacts As Worksheet
ContactList = ActiveWorkbook.Sheets("Contact List")
UpdatedContacts = ActiveWorkbook.Sheets("Updated Contacts")
Reference = ContactList.Range("B5", "C5").Value
j = 5
For i = 5 To UpdatedContacts.Cells(Rows.Count, 1).End(xlUp).Row
If UpdatedContacts.Range(Cells(i, 2), Cells(i, 3)).Value = Reference Then
UpdatedContacts.Range(Cells(i, 4), Cells(i, 17)).Copy _
Destination:=ContactList.Range(Cells(j, 4), Cells(j, 17))
j = j + 1
End If
Next i
End Sub
非常感谢任何帮助!
谢谢
【问题讨论】:
-
这可以在没有 VBA 和工作表公式的情况下完成。你对那个解决方案好吗?这是一次性的,还是需要反复处理?
-
如果没有 VBA,您将如何执行?我希望必须不断更新某些联系人。
-
如果你有一个新的联系人表转储,你可以把它放在
sheet2作为模板,然后有一个第三张表所有基于公式的表,它包含表1中的所有名称,然后有公式要查看在 sheet2 中的名称,如果它们存在,则从那里提取数据,否则从 sheet1 中提取数据。然后将工作表 3 作为值粘贴到工作表 1 上以获得完整的当前列表。设置完成后,更新它基本上是 2 次数据粘贴。很快。