简化偏移值的范围

Simplify range of offset values

我的脚本可以完整运行,但我想 "tone" 简化其中的一部分。我有三个值,如果其中一个单元格满足特定条件,我将从中删除突出显示。我将相同的 WITH 语句应用于所有三个单元格。最好将它 trim 变为 select 所有三个值,这样我就可以将它减少到只有一个循环。

为了简单起见,我只包含脚本的重要部分,因此请忽略缺少的定义。

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

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.

请记住,手动删除单元格的 'Fill'(也称为突出显示)不适用于已使用条件格式规则突出显示的单元格。