Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 比较由于撇号而不起作用的列_Vba_Excel - Fatal编程技术网

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

Vba 比较由于撇号而不起作用的列,vba,excel,Vba,Excel,我试图用以下代码比较不同工作表上的两列: 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 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
关于如何获得匹配的任何提示?

在比较之前,请使用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

撇号不是单元格内容的一部分,它只是表示单元格包含文本的标记。在您的原始代码中,如果ws2.Cellsi,81=CDblws3.Cellsj,10,那么您可以尝试一下。这给了我一个类型不匹配的问题:/这些单元格中有什么类型的数据?文本日期?数字?试图找出如何检查抱歉,给我一分钟他们都返回2,这是文本数据我以为这会起作用,但只找到三个我想我会回顾一下我的专栏,也许我遗漏了一些内容,我相信这将是解决办法,否则。