Excel精英培训网

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

[已解决]新手求助循环间隔运行代码如何书写。

[复制链接]
发表于 2022-7-20 15:45 | 显示全部楼层 |阅读模式
如下附件的图,h1单元格是g1*i1,但是员工会在h8处有个总计,怎么让h1-h100运行程序时跳过这个总计?我的这个判断条件该怎么添加,添加在哪里?

Sub 标准循环()
Dim rg As Range
For Each rg In Range("h4:h100")
rg = rg.Offset(0, -1) * rg.Offset(0, 1)
Next rg
End Sub




最佳答案
2022-7-20 16:59
Sub 标准循环()
Dim rg As Range
For Each rg In Range("h4:h100")
If rg.Offset(0, -6) <> "总计" Then
rg = rg.Offset(0, -1) * rg.Offset(0, 1)
End If
Next rg
End Sub
微信截图_20220720151650.png
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2022-7-20 16:59 | 显示全部楼层    本楼为最佳答案   
Sub 标准循环()
Dim rg As Range
For Each rg In Range("h4:h100")
If rg.Offset(0, -6) <> "总计" Then
rg = rg.Offset(0, -1) * rg.Offset(0, 1)
End If
Next rg
End Sub
回复

使用道具 举报

 楼主| 发表于 2022-7-21 12:11 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2022-7-22 13:52 | 显示全部楼层
excel用账户 发表于 2022-7-20 16:59
Sub 标准循环()
Dim rg As Range
For Each rg In Range("h4:h100")

大神空的话帮我看下,有几个问题请教下,实在不知道哪里出问题了。
1、上次代码完善后不知道为什么运行后计算结果只有h4出来,h5及以下没反应
2、还有我代码存放的在thisworkbook的话,是不是程序所有工作表sheet1-12都能运行了?因为这是个年度统计表,以前用的函数,每次改动个参数的话要一个个去修改,费时费力还容易出错,现在才开始学VBA。
3、怎么动态获取到  h98  这个单元格,因为这个还是固定的。百度说要用到  64355  这个端点定位功能,搞了半天没成功。
4、表格最终效果就是员工输入数据会像以前函数一样自动计算结果,我现在这个要手动了VBA才会出结果,或者员工插入删除行不会影响到数据。

论坛不能传文件,只能图片,不知道表达清楚了没有。
1.png
2.png
回复

使用道具 举报

 楼主| 发表于 2022-7-22 13:56 | 显示全部楼层
xyt168 发表于 2022-7-22 13:52
大神空的话帮我看下,有几个问题请教下,实在不知道哪里出问题了。
1、上次代码完善后不知道为什么运行 ...

第1条是我自己弄错了,忘记输入参数了,不好意思。这条不用管了。
回复

使用道具 举报

发表于 2022-7-22 16:26 | 显示全部楼层
xyt168 发表于 2022-7-22 13:56
第1条是我自己弄错了,忘记输入参数了,不好意思。这条不用管了。

Sub 标准循环()
Dim rg
For rg = 4 To 100
If Range("B" & rg) <> "总计" Then
Range("H" & rg) = "=G" & rg & "*I" & rg
End If
Next rg
End Sub

插入模块 放在模块里面,H98那点不知道什么意思


回复

使用道具 举报

 楼主| 发表于 2022-7-22 18:51 | 显示全部楼层
h98,是我表格倒数第二行的h列,下图这样的。主要因为代码里的4 to 100,有时会超过100行,想把代码中的100换成一个动态定位的表达方式,定位到类似下图附件中 h98的单元格。百度说要输入65536加向上函数动态定位,我试了半天没搞成功。 多谢多谢啦。
3.png
回复

使用道具 举报

发表于 2022-7-25 08:44 | 显示全部楼层
Sub 标准循环()
Dim rg
For rg = 4 To Range("H65536").End(xlUp).Row
If Range("B" & rg) <> "总计" Then
Range("H" & rg) = "=G" & rg & "*I" & rg
End If
Next rg
回复

使用道具 举报

发表于 2022-7-25 10:27 | 显示全部楼层
本帖最后由 我行我速2008 于 2022-7-25 10:28 编辑

111111111
回复

使用道具 举报

 楼主| 发表于 2022-7-25 13:02 | 显示全部楼层
666,又学到新知识了,谢谢大神。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 17:30 , Processed in 0.368776 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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