VBA动态求和问题:如何引用其他工作表的动态范围
VBA动态求和范围公式拼接问题解决
错误原因
你直接在公式字符串中写入lr变量,VBA无法识别字符串内的变量,导致公式语法错误,需要正确拼接字符串与变量。
修正后的代码
Sub MMM() Dim lr As Long ' 声明变量类型,提升代码稳定性 Windows("Template.xlsx").Activate ' 直接引用工作表获取最后一行,避免Select操作 lr = Sheets("sheet1").Cells(Sheets("sheet1").Rows.Count, 1).End(xlUp).Row ' 正确拼接公式字符串:将变量lr与固定字符串用&连接 Sheets("sheet2").Range("I13").Formula = "=SUM('sheet1'!A1:A" & lr & ")" End Sub
额外优化说明
- 移除了不必要的
Select和Activate操作,直接通过工作表对象引用单元格,代码运行更高效且不易因选中对象变化而出错 - 为
lr声明Long类型,匹配Excel行号的数值范围(避免超出Integer类型上限)
内容的提问来源于stack exchange,提问作者AKK
相关产品推荐
相关产品推荐

