Excel VBA中RC引用格式转A1格式用于条件格式的实现方法咨询
解决方案
方案1:直接动态拼接A1公式(适配当前场景)
当前需求仅需根据条件格式应用范围的起始行调整公式行号,无需额外转换,直接获取范围起始行拼接公式即可:
Dim startRow As Long ' 获取目标范围的起始行号 startRow = RG.Row ' 直接拼接生成对应行号的条件公式 Set fmtc = RG.FormatConditions.Add(Type:=xlExpression, Formula1:="=$F" & startRow & "<>$F" & (startRow + 1))
该方案逻辑最简单,无额外开销,完全匹配当前使用场景。
方案2:通用R1C1转A1格式函数(适配所有转换场景)
如果需要处理更复杂的R1C1格式公式,可使用Excel内置的Application.ConvertFormula方法实现转换,全程不需要修改单元格内容,不会触发工作表重算,无数据丢失风险:
Function RCtoFN(Argrg As Range, rcFormula As String) As String RCtoFN = Application.ConvertFormula( _ Formula:=rcFormula, _ FromReferenceStyle:=xlR1C1, _ ToReferenceStyle:=xlA1, _ RelativeTo:=Argrg.Cells(1, 1) _ ) End Function
该函数可直接替换原有自定义函数,调用方式无需修改,返回结果和原函数完全一致。
内容的提问来源于stack exchange,提问作者Ross
相关产品推荐
相关产品推荐

