【发布时间】:2018-03-29 00:19:07
【问题描述】:
我有名为“1Q FY 18”的工作表,这是第二张表,“Holiday”是第七张表。
“1Q FY 18”的第 12 行包含从 4 月 1 日到 6 月 30 日的日期。 从“B20”到“B35”的单元格包含 2018 年的假期。
我想突出显示第二张工作表中在 range("B20:B35") 处具有匹配值的列。换句话说,我想为假日列着色。
我的代码是这样的。
Sub Holiday()
lastr = Worksheets(2).UsedRange.Rows.Count
lastc = Worksheets(2).UsedRange.Columns.Count
Worksheets(2).Activate
Set ws7 = Worksheets("Holiday")
Set rng1 = ws7.Range("B20:B35")
For i = 15 To lastc
If Not IsEmpty(Application.WorksheetFunction.VLookup(Cells(12, i).Value, rng1, 1)) Then
Range(Cells(13, i), Cells(lastr - 2, i)).Interior.ColorIndex = 6
End If
Next i
End Sub
但是这个错误发生了。 当我调试时,它会突出显示
****如果不是 IsEmpty(Application.WorksheetFunction.VLookup(Cells(12, i).Value, rng1, 1)) 那么****
我该怎么办?
【问题讨论】:
-
什么是
lastc?你没有定义lastc。 -
为什么不用 networkdays.intl 进行条件格式化?
-
如果在
rng1中没有找到该值,则会出错,不返回空对象,并停止代码。您将需要处理该错误。这个网站上有很多关于如何处理的答案。 -
@ScottCraner 我尝试使用“IsError”,但它仍然无法正常工作。你能指出我正确的方向吗?
-
@PaichengWu 我刚刚做了