Vba 将Excel条件格式公式调整到选定范围

Vba 将Excel条件格式公式调整到选定范围,vba,excel,Vba,Excel,我尝试在不同的选定范围上运行一系列宏,以检查单元格的数值是否大于指定值。这里的示例适用于值大于0.7的单元格,其他宏与此类似,只是它们使用不同的大于值 我的问题似乎在于用于确定条件格式的公式;如果公式调用我选择的列中的单元格,则宏将起作用,否则它将不起任何作用 例如:我选择单元格D5:D15,然后运行以下宏: Sub Toluene() ' ' Toluene Macro ' Apply conditional formatting to Toluene cells with values gr

我尝试在不同的选定范围上运行一系列宏,以检查单元格的数值是否大于指定值。这里的示例适用于值大于0.7的单元格,其他宏与此类似,只是它们使用不同的大于值

我的问题似乎在于用于确定条件格式的公式;如果公式调用我选择的列中的单元格,则宏将起作用,否则它将不起任何作用

例如:我选择单元格D5:D15,然后运行以下宏:

Sub Toluene()
'
' Toluene Macro
' Apply conditional formatting to Toluene cells with values greater than 0.7
'

'
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
    "=AND(ISNUMBER(D5),D5>0.7)"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
    .Bold = True
    .Italic = True
    .TintAndShade = 0
End With
With Selection.FormatConditions(1).Interior
    .PatternColorIndex = xlAutomatic
    .ThemeColor = xlThemeColorAccent6
    .TintAndShade = 0.799981688894314
End With
Selection.FormatConditions(1).StopIfTrue = False
End Sub
这很好用。但是,如果我选择单元格G5:G10,并尝试对其应用相同的宏,则不会发生任何事情(不会应用正确的条件格式)

我是否正确地认为我需要以某种方式改变我的公式

"=AND(ISNUMBER(D5),D5>0.7)"

要反映所选列,如果是,是否有人对我如何做有建议?

尝试使用R1C1引用样式:

Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=AND(ISNUMBER(RC),RC>0.7)"

或者,如果您不喜欢此代码,可以使用更复杂的代码:

Dim topLeftAddr As String

topLeftAddr = Replace(Selection.Cells(1, 1).Address, "$", "")

Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=AND(ISNUMBER(" & topLeftAddr & ")," & topLeftAddr & ">0.7)"

太棒了-非常感谢simoco-使用R1C1参考有效!