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