excel vba 循环中vba并不能循环使用呀

查看: 3119|回复: 5
在某一范围内循环执行操作,直到满足条件后才停止。
阅读权限10
在线时间 小时
比如在A2:O2范围内依次对单元格的数字减1,从左到右循环进行,直到A2:O2的和小于100停止,VBA该怎么写?
阅读权限20
在线时间 小时
Do While WorksheetFunction.Sum(Range(&A2:O2&)) &= 100
& & For i = 1 To 15
& && &&&If WorksheetFunction.Sum(Range(&A2:O2&)) &= 100 Then
& && && && &Cells(2, i).Value = Cells(2, i).Value - 1
& && &&&End If
阅读权限20
在线时间 小时
Sub test()
Do While Application.Sum(Range(&a1:O2&)) & 100
& &For i = 1 To 15
& &Cells(2, i) = Cells(2, i) - 1
阅读权限95
在线时间 小时
Option Explicit
Private Sub CommandButton1_Click()
& & Dim Rng As Range
& & Dim i As Long
& & i = 14
& & Set Rng = Range(&A2:O2&)
& & Do While Application.WorksheetFunction.Sum(Rng) &= 100
& && &&&i = i + 1
& && &&&Rng.Cells((i Mod 15) + 1) = Rng.Cells((i Mod 15) + 1) - 1
& & Loop
End Sub复制代码
阅读权限95
在线时间 小时
参考附件:
18:35 上传
点击文件名下载附件
15.88 KB, 下载次数: 24
阅读权限10
在线时间 小时
感谢楼上的各位,我懂了。
最新热点 /1
Excel三大神器,函数、数据透视表、VBA,分分钟学起来!
原价257元,领券后仅需126元,相当于4.9折!优惠券数量有限,先到先得。活动时间:即日起至12月14日。
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师查看: 1586|回复: 5
循环语句不能完全执行到底
阅读权限10
在线时间 小时
& & & & & & & &
各位高手,今天我写了一段代码,想把E列含有“ZSUB”的单元格所在的行全部删除,但我发现我写的代码不能完全执行,必须一次又一次的手动,代码如下:
Dim i As Integer
For i = 1 To 10000
&&If Cells(i, &e&) = &ZSUB& Then
&&Cells(i, &e&).EntireRow.Delete
请各位高手帮忙分析解决,谢谢
20:38 上传
点击文件名下载附件
87.04 KB, 下载次数: 7
阅读权限95
在线时间 小时
使用倒循环,从底部开始删。
For i = 10000 To 1 step -1
&&If Cells(i, &e&) = &ZSUB& Then
&&Cells(i, &e&).EntireRow.Delete
阅读权限100
在线时间 小时
就拿楼主附件中的数据来说,第 378行和第 379 行都是满足条件的。那么,
当 i = 378 时第 378 行被 JU 程序删除。删除结束后,i = 379。这是正确的;
但是,Excel 中删除一行数据后,下面的行会自动向上移动一行来“递补”原来被删除的行。也就是说,此时原来的 379 行上升到 378 行,原 380 行升级为 379 行,……依次类推。
当代码再次执行删除第 379 行的时候却是删除原来第 380 行的数据。因此才会发生漏删的事件!
如何解决呢?那就参考 2 楼的代码吧!
阅读权限100
在线时间 小时
Dim i As Integer
For i = 1 To 10000
&&If Cells(i, &e&) = &ZSUB& Then
&&Cells(i, &e&).EntireRow.Delete
如果要发现一个删除一个,就需要从大到小遍历,但是这样效率低下
建议如下修改:
Dim i As Integer
Dim rng As Range
Application.ScreenUpdating = False
For i = 1 To 10000
&&If Cells(i, &e&) = &ZSUB& Then
& & If rng Is Nothing Then
& && &&&Set rng = Cells(i, &e&).EntireRow
& && &&&Set rng = Union(rng, Cells(i, &e&).EntireRow)
& & End If
rng.Delete
Application.ScreenUpdating = True
阅读权限100
在线时间 小时
具体见附件内容,,,,
07:03 上传
点击文件名下载附件
120.12 KB, 下载次数: 12
阅读权限10
在线时间 小时
谢谢,高手,学习了
最新热点 /1
Excel三大神器,函数、数据透视表、VBA,分分钟学起来!
原价257元,领券后仅需126元,相当于4.9折!优惠券数量有限,先到先得。活动时间:即日起至12月14日。
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师Excel VBA教程:在单元格区域中循环
Excel VBA教程:在单元格区域中循环
- 在单元格区域中循环
Excel VBA教程:在单元格区域中循环
使用 Visual Basic 时,经常需要对某一单元格区域内的每个单元格运行同一段语句。为达到这一目的,可组合循环语句和一个或多个方法来标识每个单元格,一次针对一个单元格,并执行该操作。
在单元格区域中循环的一种方法是将 For...Next 循环语句与 Cells属性配合使用。使用 Cells属性时,可用循环计数器(或其他变量或表达式)来替代单元格索引编号。下例中,变量counter 代替了行号。此过程将在单元格区域 C1:C20 中循环,将所有绝对值小于 0.01 的数字都设置为 0(零)。
Sub RoundToZero1()
For Counter = 1 To 20
Set curCell = Worksheets("Sheet1").Cells(Counter, 3)
If Abs(curCell.Value) & 0.01 Then curCell.Value = 0
Next Counter
在单元格区域中循环的另一种简便方法是使用 For Each...Next 循环语句和由 Range属性指定的单元格集合。在每一次循环过程中,Visual Basic 都为下一个单元格自动设置一个对象变量。下述过程在单元格区域 A1:D10 中循环,将所有绝对值小于 0.01 的数字都设置为 0(零)。
Sub RoundToZero2()
For Each c In Worksheets("Sheet1").Range("A1:D10").Cells
If Abs(c.Value) & 0.01 Then c.Value = 0
如果不知道要循环的单元格区域的边界,可用 CurrentRegion属性返回活动单元格周围的区域。例如,下述过程在工作表上运行时,将在活动单元格周围的区域内循环,将所有绝对值小于 0.01 的数字都设置为 0(零)。
Sub RoundToZero3()
For Each c In ActiveCell.CurrentRegion.Cells
If Abs(c.Value) & 0.01 Then c.Value = 0
上页: 下页:
Excel VBA教程:在单元格区域中循环
- 在单元格区域中循环
版权所有 &  证书:粤ICP备号Excel VBA编程
Do … Loop循环_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Excel VBA编程
Do … Loop循环
总评分4.2|
浏览量1821082
用知识赚钱
该文档仅有一页,您已阅读完毕,如需下载请购买
定制HR最喜欢的简历
你可能喜欢
您可以上传图片描述问题
联系电话:
请填写真实有效的信息,以便工作人员联系您,我们为您严格保密。Excel中停止死循环的按钮不好用,请问高手如何解决【vba吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:7,933贴子:
Excel中停止死循环的按钮不好用,请问高手如何解决收藏
我用VBA作的一个考场抽签程序,但停止按钮不好用,有进候起作用,有时候不管怎么点击都停不下来,请高手帮忙。
因为你俩之间差一台千元神器魅蓝 Note6 ,点我购买直降300
加入doevent或者每次判断某个单元格值是否为1,运行前该为0,需要停止时手动或用程序让它变为1
登录百度帐号推荐应用}

我要回帖

更多关于 excel vba 循环 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信