我试图在假期列表中出现日期时突出显示单元格范围。但是在运行以下代码时,将显示运行时错误1004。我甚至尝试在错误处理程序中处理它;但它不起作用。有人可以帮助我为什么会出现这个错误并解决相同的问题吗?
Sub highlight_cells()
Dim myrange As Range
On Error GoTo myerr:
For i = 1 To 10
Set myrange = Range(Cells(1, i), Cells(10, i))
temp = Application.WorksheetFunction.VLookup(Range(Cells(1, i)), [holidays], 2, False)
If (Application.WorksheetFunction.IsNA(temp)) Then
myrange.Interior.Color = 3
End If
Next i
myerr:
If Err.Number = 1004 Then
MsgBox "vlookup error"
End If
End Sub
答案 0 :(得分:0)
Range(Cells(1, i))
不是有效的范围参考
也许您想参考Cells(1, i)
此外,您可以利用Application
VLookup()
方法包装返回的变量变量中的可能错误,您可以使用IsError()
函数检查该变量,如下所示:
Dim temp As Variant
For i = 1 To 10
Set myrange = Range(Cells(1, i), Cells(10, i))
temp = Application.VLookup(Cells(1, i), [holidays], 2, False)
If Not IsError(temp) Then Cells(1, i).Interior.Color = 3
Next i
答案 1 :(得分:0)
这是一种条件格式化方法,不使用VBA。
选择您的范围>条件格式>新规则>使用公式...
输入此公式
=VLOOKUP($A2,$J$2:$K$6,1,FALSE)
照顾公式中的“$”。这应该突出显示在假期列表中找到的所有单元格。
答案 2 :(得分:0)
答案 3 :(得分:0)
Sub highlight_cells() Dim myrange As Range
对于i = 1到10
设置myrange = Range(Cells(1,i),Cells(10,i)) MsgBox Cells(1,i) temp = Application.VLookup(Cells(1,i),[holidays],1,False) 如果Not IsError(temp)那么 myrange.Interior.ColorIndex = 3 结束如果
接下来我
End Sub