将定义的名称分配给变量

时间:2013-02-06 08:59:41

标签: excel-vba vba excel

我有以下代码,我正在敲打墙,为什么它不起作用。 当使用范围为$ K10的注释行时,当我指定命名范围rngValidation时它工作正常。定义的名称范围“ptrValidationCells”设置为$ K10。

Sub FormatConditions_2()

    Dim rngToFormat As Range
    Dim rngValidation As Range

    Set rngToFormat = ActiveSheet.Range("inpInputCells")
    Set rngValidation = ActiveSheet.Range("ptrValidationCell")

'    rngToFormat.FormatConditions.Add Type:=xlExpression, Formula1:="=$K10<>FALSE"

    rngToFormat.FormatConditions.Add Type:=xlExpression, Formula1:="=rngValidation <>FALSE"

        With rngToFormat.FormatConditions(2).Interior
            .PatternColorIndex = xlAutomatic
            .Color = RGB(255, 192, 0)
            .TintAndShade = 0
        End With
        With rngToFormat.FormatConditions(2).Font
            .Bold = True
            .Italic = False
            .Color = RGB(192, 0, 0)
            .TintAndShade = 0
        End With

End Sub

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

FormatConditions在Workbook环境中执行,而不是在VBA环境中执行(如果我可以这样说),所以你需要使用命名范围而不是VBA变量。

可替换地,

rngToFormat.FormatConditions.Add Type:=xlExpression, Formula1:="=" & rngValidation.Address & "<>FALSE"

应该这样做。