[英]Highlight cells that are not in another column
我正在尝试比较两个列表(用户可以选择 - 它可以是数值或文本(10 个数字/字符长(不确定它是否重要))并突出显示第一个列表中不存在的单元格(红色)第二个。我知道可以用条件格式来做,但我想用 VBA 来做。
我在Debug.Print
的即时窗口中收到“错误 2015”。
这是我到目前为止编写的代码:
Sub Colorcells()
Dim v1 As Range
Dim v2 As Range
Dim f As Variant
Set v1 = Application.InputBox("First list", "Obtain Range Object", Type:=8)
Set v2 = Application.InputBox("Second list", "Obtain Range Object", Type:=8)
lastv1 = v1.End(xlDown).Row
With Worksheets(1)
For i = 1 To lastv1
Debug.Print Application.Match(v1.Cells(i, 1), v2.Address)
f = Application.Match(v1.Cells(i, 1), v2.Address, 0)
If Not IsError(f) Then
v1.Cells(i, 1).Interior.ColorIndex = 3
End If
Next i
End With
End Sub
我试图将 f 数据类型更改为 string/long,但随后我收到了“类型不匹配”错误。 我也尝试将循环更改为(具有相同的错误 2015 结果):
For i = 1 To lastv1
If Not IsError(Application.Match(v1.Cells(i, 1), v2.Address, 0) then
v1.Cells(i, 1).Interior.ColorIndex = 3
End If
Next i
任何帮助,将不胜感激。
不如不使用 Match 函数,而是使用 Find one,如下所示:
Sub Colorcells()
Dim v1 As Range
Dim v2 As Range
Dim found As Range
Set v1 = Application.InputBox("First list", "Obtain Range Object", Type:=8)
Set v2 = Application.InputBox("Second list", "Obtain Range Object", Type:=8)
For i = 1 To v1.Count
Set found = v2.Find(What:=v1.Cells(i, 1), LookAt:=xlWhole)
'find the value from v1 in v2
If found Is Nothing Then
'if not found then Color
v1.Cells(i, 1).Interior.ColorIndex = 3
End If
Next i
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.