Excel VBA求和后跨表复制值,input_6表结果显示为0如何解决
Excel VBA求和复制结果为0问题修复
错误原因
- 求和范围未显式绑定工作表:
WorksheetFunction.Sum(Range("F68:G68"))中的单元格范围默认读取当前激活工作表的对应位置,若代码运行时激活的不是blank3工作表,求和结果会出错,如果对应位置无有效值就会返回0。 - 空白列定位逻辑未绑定目标工作表:
Columns.Count默认取当前激活工作表的总列数,若input_6和当前激活工作表的列数不一致(比如兼容格式和普通Excel格式混用时),会导致首个空白列的定位逻辑失效。
修复代码
版本1:保留原复制粘贴逻辑
' 显式绑定blank3工作表执行操作 With wbMe.Sheets("blank3") .Range("F70") = WorksheetFunction.Sum(.Range("F68:G68")) .Range("F70").Copy End With ' 显式绑定input_6工作表定位空白列 With wbMe.Sheets("input_6") .Cells(3, .Columns.Count).End(xlToLeft).Offset(0, 1).PasteSpecial Paste:=xlPasteValues End With Application.CutCopyMode = False ' 清空剪贴板残留
版本2:直接赋值优化(性能更高,无需操作剪贴板)
With wbMe.Sheets("blank3") .Range("F70") = WorksheetFunction.Sum(.Range("F68:G68")) ' 直接赋值省略复制粘贴步骤 wbMe.Sheets("input_6").Cells(3, wbMe.Sheets("input_6").Columns.Count).End(xlToLeft).Offset(0, 1).Value = .Range("F70").Value End With
内容的提问来源于stack exchange,提问作者Przemek Dabek
相关产品推荐
相关产品推荐

