简化偏移值范围

时间:2017-06-22 19:30:37

标签: excel excel-vba simplify vba

我的脚本完全有效,但我想要“调整”并简化其中的一部分。我有三个值,如果其中一个单元符合某个条件,我将从中删除高亮显示。我将相同的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

1 个答案:

答案 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。

谨慎地记住,手动删除单元格的“填充”(也称为高亮显示)不适用于已使用条件格式设置规则突出显示的单元格。

相关问题