Excel VBA问题:将Sheet1两数值相加输出至Sheet2,代码运行失败
问题解决:VBA实现跨工作表数值相加并赋值
错误原因
你写的代码里用了.Formula属性,这个属性是用来读取/设置单元格的公式文本,而不是单元格的实际数值。比如如果Part2a的K3单元格是公式=SUM(A1:A2),.Formula得到的就是这个字符串,把两个字符串相加自然会运行失败。
正确代码写法
写法1:直接赋值计算后的固定数值
这种方式会把当前K3和K4的数值相加后,把结果作为固定值写入L7,后续K3/K4变化时L7不会自动更新,需要重新运行宏:
Sub mycode5() Dim num1 As Double, num2 As Double ' 获取Part2a工作表中K3、K4的数值 num1 = Worksheets("Part2a").Range("K3").Value num2 = Worksheets("Part2a").Range("K4").Value ' 将相加结果写入Part4的L7单元格 Worksheets("Part4").Range("L7").Value = num1 + num2 End Sub
写法2:设置Excel公式实现自动联动
这种方式给L7单元格设置Excel公式,后续Part2a的K3/K4数值变化时,L7会自动更新结果,更符合Excel的使用逻辑:
Sub mycode5() ' 因为代码写在Part4工作表中,可以用Me代表当前工作表,简化代码 Me.Range("L7").Formula = "=Part2a!K3 + Part2a!K4" End Sub
如果不想用Me,也可以写全称:
Sub mycode5() Worksheets("Part4").Range("L7").Formula = "=Part2a!K3 + Part2a!K4" End Sub
内容的提问来源于stack exchange,提问作者Qian Wen
相关产品推荐
相关产品推荐

