这个使用excel的迭代计算可以完成。
具体操作方法如下:
1、单击文件按钮
2、在弹出的快捷菜单中单击选项
3、在弹出的excel选项对话框左侧单击公式按钮,在右侧的计算选项中勾选启用迭代计算,最多迭代次数为1,单击确定按钮
4、在A2单元格输入公式=A1+A2,回车,在A1依次输入1,2,3,即可在A2得到6
1、首先在Excel中输入几行测试数据。
2、然后在新的列输入一个等号。
3、在等号后面输入单词sum,与一个左括号,连起来就是"=sum("。
4、按住鼠标,从列1拖到列5,在上一步后面加上右括号,即 “=sum(A2:E5)”。
5、输入完成右括号之后,按一下键盘的Enter回车键,数字就自动求和了。
6、鼠标按住上一步单元格右下角出现的加号,往下拉,就会自动计算各行求和,完成效果图。
写了个代码,加到你的文档中就可以了。
具体步骤:打开你的文档,按Alt+F11进入VB界面,在左边工程小窗口中展开树状找到“ThisWorkBook”,把以下代码粘贴到“ThisWorkBook”中。
代码经过测试,可以符合你的要求。
Dim i As Double
Dim t As Integer
'--------------------------------------------------------
'Description:this micro-sub automatically plus range value
'--------------------------------------------------------
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
t = t + 1
On Error GoTo skip
If t <= 1 Then
Target.Value = Target.Value + i
End If
skip:
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
t = 0
On Error GoTo skip
i = Target.Value
skip:
End Sub
我想是不是改变一下你的表格设计,将要输入的数据放在一行或一列.如果表格的格式不允许改变已好办新增一张输入表,将输入表的结果求和后再返回给接收结果的表.这些操作都可以自动完成.
按你上面的要求算是VBA做起来代码能也不好写.况且你的输入也很不方便.
Sub 累计()
Dim x, y
x = Selection.Row()
y = Selection.Column()
Dim a As String
Dim b As Double
a = 0
Do While a <> ""
a = InputBox("", "请输入数字")
If a <> "" Then
b = b + a
Cells(x, y).Value = b
End If
Loop
End Sub
写入宏 宏好了后你就选中要输入的单元格然后运行宏输入完了就X掉宏