比较由于撇号而不起作用的列

时间:2017-07-26 01:25:37

标签: excel vba excel-vba

我正在尝试使用以下代码比较不同工作表上的两列:

For i = 2 To lastRow22
    For j = 2 To lastRow33
        If ws2.Cells(i, 81) = ws3.Cells(j, 10) Then
            ws2.Cells(i, 1).Interior.Color = vbGreen
        End If
    Next j
Next I

我知道列中的项目匹配,但循环似乎找不到匹配项。我进一步检查了这些色谱柱,在一张纸上,柱状细胞都带有撇号,另一张则没有。

我尝试使用以下代码循环遍历工作表并删除撇号,但它不起作用:

For i = 2 To lastRow33
    If ws3.Cells(i, 10) Like "'*" Then
        x = Replace(ws2.Cells(i, 1), "'", "")
        ws3.Cells(i, 10) = x
    End If
Next I

关于我可以做些什么来获得比赛的提示?

1 个答案:

答案 0 :(得分:1)

在比较之前使用Cstr将所有内容转换为字符串。这适用于字符串和数字,因此没有类型不匹配错误。

最终代码:

For i = 2 To lastRow22
    For j = 2 To lastRow33
        If Cstr(ws2.Cells(i, 81)) = Cstr(ws3.Cells(j, 10)) Then
            ws2.Cells(i, 1).Interior.Color = vbGreen
        End If
    Next j
Next i