你好,请教有关EXCEL中迭代计算的问题,可用公式或VBA解决。
你有个前提就是清除了A1的数据,B1清零,那又怎么可以做到返回上一回的数据呢?追问例如:A1输入2,B1=2A1输入3,B1=5A1输入5,B1=10把A1的5,删除后,...
你有个前提就是清除了A1的数据,B1清零,那又怎么可以做到返回上一回的数据呢?追问例如: A1 输入 2, B1=2A1输入3, B1=5A1输入5, B1=10把 A1的5,删除后,B1=5.这种效果。回答用VBA可以做到,就是删除就减去,输入就加上,对吧?Dim iPrivate Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then If Target.Value = "" Then Range("B1") = Range("B1") - i Else Range("B1") = Range("B1") + Target.Value End If End IfEnd SubPrivate Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = "$A$1" Then i = Target.Value End IfEnd Sub提问者评价按照你说的,真的成功了,好开心,谢谢你!我想要这样的:你有个前提就是清除了A1的数据,B1清零,那又怎么可以做到返回上一回的数据呢?追问例如: A1 输入 2, B1=2A1输入3, B1=5A1输入5, B1=10把 A1的5,删除后,B1=5. A2 输入 2, B2=2A2输入3, B2=5A2输入5, B2=10A3 输入 2, B3=2A3输入3, B3=5A3输入5, B3这个怎么用VBA实现啊?
展开
展开全部
代码如下,详见附件。
Dim N
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If InStr(Target.Address, "$A$") > 0 Then Target.Offset(, 1) = Target.Offset(, 1) + IIf(IsEmpty(Target), -N, Val(Target))
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If InStr(Target.Address, "$A$") > 0 Then N = Val(Target(1))
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询