語境:新來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個數據。很快。 –