ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 29084|回复: 22

[讨论] 怎么让 For/Next 中跳过符合特定条件的一次循环,进入下一次循环

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-7-8 11:47 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 簡單愛情 于 2014-7-8 11:48 编辑

For i = 0 To 20
    If i = 9 Then
       [代码1]
'       ____________   '这里怎么加才能让 i 跳过 9 ,直接进入到 10? 也就是不执行下面的 [代码2]

    End If
    [代码2]
Next i

如果用 Next i,提示出错呀!
exit for是退出循环,而不是跳过一次!

TA的精华主题

TA的得分主题

发表于 2014-7-8 11:50 | 显示全部楼层
For i = 0 To 20
    If i = 9 Then
       [代码1]
    ELSE
       [代码2]
   
    End If
Next i


TA的精华主题

TA的得分主题

 楼主| 发表于 2014-7-8 11:51 | 显示全部楼层
jsxjd 发表于 2014-7-8 11:50
For i = 0 To 20
    If i = 9 Then
       [代码1]

但是我想知道的是,有没有办法跳过一次循环?

TA的精华主题

TA的得分主题

发表于 2014-7-8 11:53 | 显示全部楼层
簡單愛情 发表于 2014-7-8 11:51
但是我想知道的是,有没有办法跳过一次循环?

VBA 没有类似 Loop / Continue 那样的语句

TA的精华主题

TA的得分主题

发表于 2014-7-8 11:55 | 显示全部楼层
  1. For i = 0 To 20
  2.     If i <> 9 Then
  3.     '这里粘贴你原来的代码
  4.     end if
  5. Next i
复制代码

TA的精华主题

TA的得分主题

发表于 2014-7-8 12:08 | 显示全部楼层
簡單愛情 发表于 2014-7-8 11:51
但是我想知道的是,有没有办法跳过一次循环?


For i = 0 To 20
    If i = 9 Then
       [代码1]

       i=i+1

    End If
    [代码2]
Next i

TA的精华主题

TA的得分主题

发表于 2014-7-8 12:19 | 显示全部楼层

For i = 0 To 20
    If i = 9 Then
       [代码1]
'
      goto a0:
    End If
    [代码2]
a0:
Next i

TA的精华主题

TA的得分主题

发表于 2014-7-8 18:01 | 显示全部楼层
crazy0qwer 发表于 2014-7-8 12:08
For i = 0 To 20
    If i = 9 Then
       [代码1]

+1后还是执行了 [代码2]

TA的精华主题

TA的得分主题

发表于 2014-7-8 20:25 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
我感觉可以用goto语句实现……比如用goto直接跳转到next i,不知这样行不行……

点评

能实现,但不提倡  发表于 2014-12-5 09:30

TA的精华主题

TA的得分主题

发表于 2014-7-8 21:40 | 显示全部楼层
本帖最后由 aoe1981 于 2014-7-8 21:43 编辑
  1. Sub 清空()
  2. Dim sht As Worksheet
  3. Dim x As Range, rng As Range
  4. For Each sht In Worksheets
  5. sht.Activate
  6. 'On Error Resume Next
  7. For Each x In sht.Range("A1:C30")
  8.        If x.Interior.Color = vbWhite Or x.Interior.Color = xlNone And x <> "" Then
  9.         If rng Is Nothing Then Set rng = x Else Set rng = Union(rng, x)
  10.        End If
  11. Next
  12. If Not rng Is Nothing Then rng.ClearContents
  13. Set rng = Nothing
  14. Next
  15. End Sub
复制代码
以上代码可以实现清空各工作表指定区域内容了……
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-20 11:19 , Processed in 0.043975 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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