Excel VBA实现SUM公式自动下移行出现类型不匹配错误如何解决
运行时错误13类型不匹配修复方案
错误原因
你从单元格读取的Formula属性自带开头的等号=,但你定义的匹配前缀S = "SUM(B"没有包含这个等号,两层Replace执行完成后得到的字符串会残留开头的=,无法转换为整数,因此触发类型不匹配报错。
修复后的完整代码
Sub formulaupdate() Dim R As Range, S As String, T As String, I As Integer, f As String Set R = Range("B34") ' 匹配前缀加等号,和单元格实际公式结构对应 S = "=SUM(B" T = ":B33)+SUM(C3:C33)" f = R.Formula ' 替换后可以正常提取到起始行号,再做类型转换 I = CInt(Replace(Replace(f, S, ""), T, "")) + 1 ' 公式赋值用&做字符串拼接,避免+的歧义 R.Formula = S & I & T End Sub
效果验证
运行后B34单元格的公式会自动将SUM的B列起始行向下移动1行,符合日报每日更新的需求。
内容的提问来源于stack exchange,提问作者NANA
相关产品推荐
相关产品推荐

