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,这是文本数据我以为这会起作用,但只找到三个我想我会回顾一下我的专栏,也许我遗漏了一些内容,我相信这将是解决办法,否则。