簡體   English   中英

Excel Macro比較兩個工作表中的數據並在匹配時粘貼值

[英]Excel Macro to compare data from 2 sheets and paste values over on match

我有2個工作表,我想比較一下工作表1中的名字和姓氏(A和B列)中的數據是否在工作表2中(也叫A和B列),其中名字在A列和Last中B列中的名稱。如果在sheet2中找到了sheet1的名字和姓氏,並且如果該行的工作表2(E列)中的ID號等於2,那么我想復制客戶詳細信息行(從工作表2的D列到工作表1的P列。

我覺得下面的代碼應該可以工作,但是對我來說,這並不是將客戶數據粘貼到sheet1的P列中。 有什么想法嗎?

Sub matchandpaste()


Dim cell, cell2, revenue As Range
Dim wbk As Workbook
Dim sheet1, sheet2 As Worksheet
Dim temp, firstName, lastName As String

Set wbk = ThisWorkbook

Set Sheet1 = wbk.Sheets("Sheet1")
Set sheet2 = wbk.Sheets("Sheet2")


For Each cell In Sheet1.Range("B2:B" & Range("B2").End(xlDown).Row)
    lastName = cell.Value
    firstName = cell.Offset(0, -1).Value
    Set revenue = cell.Offset(0, 14)
    For Each cell2 In sheet2.Range("B2:B" & Range("B2").End(xlDown).Row)
        If lastName = cell2.Value And firstName = cell2.Offset(0, -1).Value And cell2.Offset(0, 3).Value = 2 Then
            revenue = cell2.Offset(0, 2).Value
        End If
    Next cell2
Next cell

您只需要在revenue范圍變量的末尾添加一個.value 像這樣:

Sub matchandpaste()


Dim cell, cell2, revenue As Range
Dim wbk As Workbook
Dim sheet1, sheet2 As Worksheet
Dim temp, firstName, lastName As String

Set wbk = ThisWorkbook

Set Sheet1 = wbk.Sheets("Sheet1")
Set sheet2 = wbk.Sheets("Sheet2")


For Each cell In Sheet1.Range("B2:B" & Range("B2").End(xlDown).Row)
    lastName = cell.Value
    firstName = cell.Offset(0, -1).Value
    Set revenue = cell.Offset(0, 14)
    For Each cell2 In sheet2.Range("B2:B" & Range("B2").End(xlDown).Row)
        If lastName = cell2.Value And firstName = cell2.Offset(0, -1).Value And cell2.Offset(0, 3).Value = 2 Then
            revenue.value = cell2.Offset(0, 2).Value
        End If
    Next cell2

Next cell

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM