语境:新来VBAExcel的VBA:循环通过在Sheet1两列,查找特定的名称,粘贴行与匹配值到Sheet2
任务:我在Worksheet1联系人列表中包含的列:姓氏,名字,电子邮件,电话号码等等。我在Worksheet2第二联系人列表(格式完全一样),其中包含大约在Worksheet1联系人列表但更新的联系人信息(电子邮件,电话号码等),发现1000名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的情况下执行?我希望不得不不断更新某些联系人。 – Coles
如果你有一个新的联系人片场,你可以放置在'sheet2'为模板,然后有一个3片式一切基于保存在Sheet1中所有的名字,然后有公式来查找名称Sheet 2中,如果他们存在从那里拉数据,否则从sheet1拉它。然后粘贴表单3作为整个当前列表中的表单1的值。一旦它成立,更新它基本上是2个数据。很快。 –