我的脚本完全有效,但我想要“调整”并简化其中的一部分。我有三个值,如果其中一个单元符合某个条件,我将从中删除高亮显示。我将相同的WITH语句应用于所有三个单元格。修剪它以选择所有三个值是很好的,所以我可以将它减少到只有一个循环。
为简单起见,我只包含脚本的重要部分,因此请忽略缺少的定义。
For Each rngCell In NetworkPatchRange
If InStr(rngCell.Value, "-") > 0 Then
rngCell.Select
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
rngCell.Offset(0, -1).Select
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
rngCell.Offset(0, -2).Select
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If
Next
答案 0 :(得分:2)
Avoid using Select in Excel VBA macros
For Each rngCell In NetworkPatchRange
If cbool(InStr(1, rngCell.Value, chr(45))) Then
rngCell.offset(0, -2).resize(1, 3).interior.Pattern = xlNone
End If
Next
用于删除突出显示的录制宏代码执行的操作多于实际需要的操作。只需将.interior.Pattern设置为xlNone。
谨慎地记住,手动删除单元格的“填充”(也称为高亮显示)不适用于已使用条件格式设置规则突出显示的单元格。