移动打印的匹配结果的位置

我有一张与sheet2上的主列表相匹配的联系人列表,匹配的联系人Email_ID将被从主列表中选出。 与Email_ID联系的结果将打印在从H列开始的sheet3上。 程序代码工作,但结果从列A开始打印。看来我正在使用偏移属性以一种错误的方式。

表1,表2和表3的样本附在下面。

联系人匹配 主列表

匹配的联系人

程序代码如下。

Sub GetEAddress() Dim c Dim Fin As Range Dim SearchRangeS1, SearchRangeS2 Set SearchRangeS1 = Sheet1.Range("A1:A" & Sheet1.Cells(Rows.Count, 1).End(xlUp).Row) Set SearchRangeS2 = Sheet2.Range("A1:A" & Sheet2.Cells(Rows.Count, 1).End(xlUp).Row) Sheet3.Cells.Clear Sheet3.Range("H1") = "Name" Sheet3.Range("I1") = "Email_ID" For Each c In SearchRangeS2 Set Fin = Nothing Set Fin = SearchRangeS1.Find(c.Value, LookAt:=xlWhole) If Not Fin Is Nothing Then With Sheet3.Range("A" & Sheet3.Cells(Rows.Count, 1).End(xlUp).Row + 1) .Value = c .Offset(0, 1).Resize(, 8).Value = c.Offset(0, 1).Resize(, 8).Value End With End If Next c End Sub 

您在工作表3上引用了错误的列,而您的行号没有递增。

尝试这个:

 Sub GetEAddress() Dim c Dim Fin As Range Dim SearchRangeS1, SearchRangeS2 Dim i As Integer '<-- Newly added Set SearchRangeS1 = Sheet1.Range("A1:A" & Sheet1.Cells(Rows.Count, 1).End(xlUp).Row) Set SearchRangeS2 = Sheet2.Range("A1:A" & Sheet2.Cells(Rows.Count, 1).End(xlUp).Row) Sheet3.Cells.Clear Sheet3.Range("H1") = "Name" Sheet3.Range("I1") = "Email_ID" i = Sheet3.Cells(Rows.Count, 1).End(xlUp).Row + 1 '<-- Newly added For Each c In SearchRangeS2 Set Fin = Nothing Set Fin = SearchRangeS1.Find(c.Value, LookAt:=xlWhole) If Not Fin Is Nothing Then With Sheet3.Range("H" & i) '<-- Changed here .Value = c .Offset(0, 1).Resize(, 8).Value = c.Offset(0, 1).Resize(, 8).Value i = i + 1 '<-- Newly added End With End If Next c End Sub