将xlA1格式Excel公式转换为xlR1C1时报类型不匹配错误如何处理
VBA调用ConvertFormula转换公式格式报错的原因及解决方案
核心错误原因
- 缺少
RelativeTo参数:你当前的ConvertFormula调用仅传入3个基础参数,但两个公式中都存在相对引用(比如第一个公式里的A24、'Calcs - Conversion'!DJ9),转换相对引用格式时必须指定RelativeTo参数为公式所在的单元格对象,VBA才能基于该单元格位置计算相对引用对应的R1C1偏移量,缺少该参数就会抛出类型不匹配错误。 - 自定义名称有效性校验:第一个公式中用到了自定义名称
Other_Analysis_Input_Field,请先确认该名称在当前工作簿的名称管理器中正常定义、不存在#REF!类的引用失效问题,无效的自定义名称也会导致转换失败。
修复后的代码
Formula = Application.ConvertFormula( _ Formula:=wk_sht.Range(cell).Formula, _ fromReferenceStyle:=xlA1, _ toReferenceStyle:=xlR1C1, _ RelativeTo:=wk_sht.Range(cell))
内容的提问来源于stack exchange,提问作者Syed Hunain
相关产品推荐
相关产品推荐

