Excel精英培训网

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

[已解决]求大侠帮忙:(H+I+J+K+L+M+N)=O*p=Q列的代码

[复制链接]
发表于 2013-11-30 23:16 | 显示全部楼层 |阅读模式

求大侠帮忙:(H+I+J+K+L+M+N)=O*p=Q 列的代码
最佳答案
2013-12-1 00:47
本帖最后由 xdragon 于 2013-12-1 00:48 编辑
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.   If Target.Count = 1 And Target.Row > 2 Then
  3.     Dim r&
  4.     r = Target.Row
  5.     If Target.Column >= 8 And Target.Column <= 14 Then
  6.        Cells(r, "O") = WorksheetFunction.Sum(Range("H" & r & ":N" & r))
  7.     End If
  8.     If Target.Column = 16 Then Cells(r, "Q") = Cells(r, "O") * Cells(r, "P")
  9.   End If
  10. End Sub
复制代码
QQ截图20131130231626.png
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-11-30 23:22 | 显示全部楼层
没截行号
是第3行?
Q3
  1. =SUM(H3:N3)*P3
复制代码
下拉``
回复

使用道具 举报

 楼主| 发表于 2013-12-1 00:01 | 显示全部楼层
尛ぃ謉 发表于 2013-11-30 23:22
没截行号
是第3行?
Q3下拉``

我不要函数啊,我要的是vba代码,
回复

使用道具 举报

发表于 2013-12-1 00:19 | 显示全部楼层
本帖最后由 xdragon 于 2013-12-1 00:22 编辑
  1. sub t()
  2.   dim arr() , i&,j&
  3.   arr=range("H3:Q100").value '这里的第3行至第100行是实际单元格占用的行数
  4.   for i=1 to ubound(arr)
  5.     for j=1 to 7
  6.        arr(i,8)=arr(i,8)+arr(i,j)
  7.     next
  8.     arr(i,10)=arr(i,8)*arr(i,9)
  9.   next
  10.   range("H3:Q100")=arr
  11. end sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-12-1 00:29 | 显示全部楼层
xdragon 发表于 2013-12-1 00:19

我的意思是不要按钮,只要我输入数字后的单元格就会自动显示结果,麻烦你帮我改下好吗?谢谢
回复

使用道具 举报

发表于 2013-12-1 00:35 | 显示全部楼层
tuibian_htf 发表于 2013-12-1 00:29
我的意思是不要按钮,只要我输入数字后的单元格就会自动显示结果,麻烦你帮我改下好吗?谢谢

输入哪些书写会自动显示结果呢?在输入完单价后,还是每次输入数量就会更新?
回复

使用道具 举报

 楼主| 发表于 2013-12-1 00:39 | 显示全部楼层
xdragon 发表于 2013-12-1 00:35
输入哪些书写会自动显示结果呢?在输入完单价后,还是每次输入数量就会更新?

只要我每输入一个单元格后面的就会自动更新,谢谢
回复

使用道具 举报

发表于 2013-12-1 00:47 | 显示全部楼层    本楼为最佳答案   
本帖最后由 xdragon 于 2013-12-1 00:48 编辑
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.   If Target.Count = 1 And Target.Row > 2 Then
  3.     Dim r&
  4.     r = Target.Row
  5.     If Target.Column >= 8 And Target.Column <= 14 Then
  6.        Cells(r, "O") = WorksheetFunction.Sum(Range("H" & r & ":N" & r))
  7.     End If
  8.     If Target.Column = 16 Then Cells(r, "Q") = Cells(r, "O") * Cells(r, "P")
  9.   End If
  10. End Sub
复制代码
QQ截图20131201004746.jpg
回复

使用道具 举报

 楼主| 发表于 2013-12-1 00:49 | 显示全部楼层
xdragon 发表于 2013-12-1 00:47

谢谢你了大侠,时间不早了早点休息。明天再请教你
回复

使用道具 举报

 楼主| 发表于 2013-12-1 11:32 | 显示全部楼层
tuibian_htf 发表于 2013-12-1 00:49
谢谢你了大侠,时间不早了早点休息。明天再请教你

大侠:上午好!昨天你帮我写的代码在新建的表里可以使用,但是要我到的表里就不行了,是什么原因呢?会不会是其他的代码影响了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-26 04:05 , Processed in 0.173008 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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