VBA中SUMPRODUCT的R1C1公式用变量做偏移量报1004错误如何解决
错误原因
你将v_LastRow变量直接写在了双引号包裹的公式字符串内,VBA不会对引号内的内容做变量解析,最终传入Excel的公式里会直接出现R[-v_LastRow]这种非法语法,因此触发1004运行时错误。
解决方法
需要把变量从字符串中拆分出来,用VBA的字符串拼接符&将公式字符串、变量值拼接成完整的合法公式即可,修改后代码如下:
ActiveCell.FormulaR1C1 = "=SUMPRODUCT((MONTH(R[-" & v_LastRow & "]C[-16]:R[-1]C[-16])=R[5]C[-15])*(R[-" & v_LastRow & "]C:R[-1]C))"
注意事项
使用前请确认v_LastRow为正整数,且数值小于当前单元格的行号,避免偏移后引用到行号小于1的非法单元格。
内容的提问来源于stack exchange,提问作者LeCluz
相关产品推荐
相关产品推荐

