查看列表并将符合条件的行移动到Excel VBA Type Mistmatch上的另一个工作表

时间:2016-02-11 22:37:23

标签: excel vba excel-vba

工作表1在A列中有一个名称列表。工作表2包含在B列中具有此类名称的单元格。对于A列中的每个名称,在B列表2中也找到了工作表1,我正在尝试移动到工作表3现在我在&#34上遇到类型不匹配错误;如果rng = lookupvalue那么"。这两列都被格式化为文本,所以我无法理解为什么......

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

1 个答案:

答案 0 :(得分:1)

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