excel中实现这个求和问题

来源:百度知道 编辑:UC知道 时间:2024/05/02 08:41:37
在A1中每输入一次数值,在B1中能算出A1里输入数值的累计值
如:第一次在A1里输入数值1,在B1里能显示数值1;
第二次在A1里输入数值2,在B1里能显示数值3;
第三次在A1里输入数值5,在B1里能显示数值8;
第二次在A1里输入数值12,在B1里能显示数值20;
依此类推.......
谢谢!
当然还有其他数据的存在,在网上看到以下代码不能随时移动和进行其他操作,但又不知道如何改:假如你说的工作表为Sheet1
打开excel,按Alt+F11
双击左边树的Sheet1

在右边粘入以下代码:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$2" Then
Cells(1, 2) = Cells(1, 2) + Cells(1, 1)
End If
End Sub

好简单就是加这句Cells(1, 2) = Cells(1, 2) + Cells(1, 1)
解释:Cells(1, 2) = Cells(1, 2) + Cells(1, 1)
单元格(第几行第几格)=单元格(第几行第几格)+单元格(第几行第几格)
在Cells(1, 2) = Cells(1, 2) + Cells(1, 1)后面加Cells(2, 2) = Cells(2, 2) + Cells(2, 1)就系第二行了!
完整就系:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$2" Then
Cells(1, 2) = Cells(1, 2) + Cells(1, 1)
Cells(2, 2) = Cells(2, 2) + Cells(2, 1)
End If
End Sub

错! 错! 错! 大错特错!!!
不应用 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
否则工作表会天下大乱!!!

应在对话框右边的下拉选Change
便会出现
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub

再将VBA代码加进去:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then End
If Target.Address = "$A$1" Then
Cells(1, 2) = Cells(1, 2) + Cells(1, 1)
Cells(1, 1).Select
End If
End Sub