如何用VBA在单元格硬编码写入公式 解决A:B范围识别异常问题
VBA写入Excel公式范围异常解决方案
问题原因
你使用了FormulaR1C1属性写入公式,该属性仅支持R1C1格式的单元格引用,你代码里写的A2、LiveTV!A:B都是A1格式的引用,Excel会错误解析R1C1规则,最终导致范围显示异常。
解决方法
有两种可行的修改方案,任选一种即可:
- 方案1:更换为适配A1引用格式的
Formula属性,不需要修改原有公式内容,同时可以去掉不必要的Select操作提升代码运行效率,修改后代码如下:
Range("T2").Formula = _ "=IFERROR(VLOOKUP(A2,LiveTV!A:B,2,FALSE),""No Live TV"")"
- 方案2:如果需要保留
FormulaR1C1属性,就把公式内的所有引用转换为R1C1格式,A2对应同一行的第1列写为RC1,LiveTV!A:B对应前两列写为LiveTV!C1:C2,修改后代码如下:
Range("T2").FormulaR1C1 = _ "=IFERROR(VLOOKUP(RC1,LiveTV!C1:C2,2,FALSE),""No Live TV"")"
补充提示
如果后续需要下拉填充公式,且匹配范围固定为LiveTV表的前两列,可以给范围加上绝对引用符号$,写为LiveTV!$A:$B,避免填充时范围偏移。
内容的提问来源于stack exchange,提问作者Perspektiva Photography
相关产品推荐
相关产品推荐

