通过列表查看并将符合标准的行移动到Excel VBAtypesMistmatch上的另一个工作表

工作表1有列A中的名称。工作表2具有在列B中具有这样的名称的单元格。对于列A中的每个名称也可以在列B工作表2中find名称,我正在尝试移动到工作表3。在“If rng = lookupvalue Then”时出现types不匹配错误。 这两列都格式化为文本,所以我不明白为什么…

Sub FIXSICC() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Dim wb As Workbook Dim ws As Worksheet Set wb = ActiveWorkbook Set ws1 = wb.Sheets("Sheet1") Set ws2 = wb.Sheets("Sheet2") Set ws3 = wb.Sheets("Sheet3") z = ws1.Cells(ws1.Rows.Count, 1).End(xlUp).Row For i = z To 2 Step -1 lookupvalue = ws1.Cells(i, 1).Value For x = ws2.Cells(Rows.Count, 2).End(xlUp).Row To 2 Step -1 Set rng = ws2.Cells(x, 2) If rng = lookupvalue Then ws1.Rows(i).Copy Destination:=ws3.range("A" & ws3.Rows.Count).End(xlUp).Offset(1) End If Next x Next i Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End Sub 

为什么不尝试像这样:如果cstr(rng.value)= cstr(lookupvalue)我试着运行你的代码,但没有出现错误。 我想知道为什么。