Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 12162|回复: 9

[已解决]同一行上,在一个单元格输入数据,下一行另一个单元格进行累加

[复制链接]
发表于 2014-4-27 14:43 | 显示全部楼层 |阅读模式
同一行上,在一个单元格输入数据,下一行另一个单元格进行累加。
如:A1单元格输入数据,A2、A3、A4、A5、A6、单元格相应数据进行累加。
       B1单元格输入数据,B2、B3、B4、B5、B6、单元格相应数据进行累加。
       C1单元格输入数据,C2、C3、C4、C5、C6、单元格相应数据进行累加。
      D1单元格输入数据,D2、D3、D4、D5、D6、单元格相应数据进行累加。
     E1单元格输入数据,E2、E3、E4、E5、E6、单元格相应数据进行累加。
     F1单元格输入数据,F2、F3、F4、F5、F6、单元格相应数据进行累加。
     G1单元格输入数据,G2、G3、G4、G5、G6、单元格相应数据进行累加。
      H1单元格输入数据,H2、H3、H4、H5、H6、单元格相应数据进行累加。
     I1单元格输入数据,I2、I3、I4、I5、I6、单元格相应数据进行累加。
     J1单元格输入数据,J2、J3、J4、J5、J6、单元格相应数据进行累加。



我只知道这样能实现其中之一的功能:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
[A2] = [A1] + [A2]
[A3] = [A1] + [A3]
[A4] = [A1] + [A4]
[A5] = [A1] + [A5]
End If
End Sub


那么,B1、C1、D1.…………。又如何在同一VBA里实现呢!求教中,谢谢!!!!急急…………
最佳答案
2014-4-27 15:30
本帖最后由 qh8600 于 2014-4-27 15:35 编辑
wxb120205 发表于 2014-4-27 15:26
就是这样的效果,可是能反过来吗?在横向输入数据,坚向出结果。
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     On Error GoTo error
  3.     Dim a As Double
  4.     If Target.Row = 1 Then
  5.         a = Target.Value
  6.         For i = 2 To 6
  7.             Target.Cells(i, 1) = Target.Cells(i, 1) + a
  8.         Next i
  9.     End If
  10. error:
  11.     Exit Sub
  12. End Sub
复制代码
99.rar (6.24 KB, 下载次数: 34)
发表于 2014-4-27 14:51 | 显示全部楼层
建议上传附件 附带非关键数据 并模拟你想要的结果
回复

使用道具 举报

发表于 2014-4-27 14:52 | 显示全部楼层
你举的例子,和你代码的例子,貌似不一样吧。
回复

使用道具 举报

 楼主| 发表于 2014-4-27 15:00 | 显示全部楼层
老大,快帮帮我,我快疯了,急用啊!
回复

使用道具 举报

 楼主| 发表于 2014-4-27 15:07 | 显示全部楼层
比如:我们在A1输入12,A2显示12,A3显示12,A4显示12,A5显示12,A1再输入13,A2就循环累加,值为:12+13=25。A3就循环累加,值为:12+13=25。A4就循环累加,值为:12+13=25。A5就循环累加,值为:12+13=25。
   
B1输入12,B2显示12,B3显示12,B4显示12,B5显示12,B1再输入13,B2就循环累加,值为:12+13=25。B3就循环累加,值为:12+13=25。B4就循环累加,值为:12+13=25。B5就循环累加,值为:12+13=25。

C1.……。。……。……
D1.。……。………………

  再次在A1输入10,A2这次的循环累加值为:10+25=35。其余单元格以此类推,只要在A列输入数字,A2、A3.……。等行就自动循环累加。
回复

使用道具 举报

发表于 2014-4-27 15:08 | 显示全部楼层
唉,问题说不清,答案也没有啊
回复

使用道具 举报

 楼主| 发表于 2014-4-27 15:09 | 显示全部楼层
我又说了一遍,您再看看,谢谢!!!
回复

使用道具 举报

发表于 2014-4-27 15:17 | 显示全部楼层
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     On Error GoTo error
  3.     Dim a As Double
  4.     If Target.Column = 1 Then
  5.         a = Target.Value
  6.         For i = 2 To 6
  7.             Target.Cells(1, i) = Target.Cells(1, i) + a
  8.         Next i
  9.     End If
  10. error:
  11.     Exit Sub
  12. End Sub
复制代码
99.rar (6.06 KB, 下载次数: 14)
回复

使用道具 举报

 楼主| 发表于 2014-4-27 15:26 | 显示全部楼层
qh8600 发表于 2014-4-27 15:17

就是这样的效果,可是能反过来吗?在横向输入数据,坚向出结果。
回复

使用道具 举报

发表于 2014-4-27 15:30 | 显示全部楼层    本楼为最佳答案   
本帖最后由 qh8600 于 2014-4-27 15:35 编辑
wxb120205 发表于 2014-4-27 15:26
就是这样的效果,可是能反过来吗?在横向输入数据,坚向出结果。
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     On Error GoTo error
  3.     Dim a As Double
  4.     If Target.Row = 1 Then
  5.         a = Target.Value
  6.         For i = 2 To 6
  7.             Target.Cells(i, 1) = Target.Cells(i, 1) + a
  8.         Next i
  9.     End If
  10. error:
  11.     Exit Sub
  12. End Sub
复制代码
99.rar (6.24 KB, 下载次数: 34)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-31 12:22 , Processed in 0.380757 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表