【问题标题】:Simple repeat or loop Call sub in VBAVBA中的简单重复或循环调用子
【发布时间】:2014-05-12 14:32:14
【问题描述】:

我想知道是否有一种更简单的方法可以“循环”一个 sub 执行多次。

我想做以下事情:

 Sub defined()
   'code here to be looped
  End sub

 Sub use()
 ... 'previous codes
 Call defined 'do defined once
 ... 'interlude codes
 Call defined(3) 'do defined action thrice
 ... 'interlude codes
 Call defined(2) 'do defined twice
 End Sub

有没有类似的东西存在?或者我必须使用循环,当使用调用子应用此方法时,我仍然对如何编码有点困惑。

感谢您的宝贵时间。 编辑标签

【问题讨论】:

  • 不,您需要使用Loop/For
  • 感谢您的回答。让我知道如何支持您的评论,以及如何结束这个问题。我看不到任何图像,因此您需要告诉我在哪里(例如,“在我的用户名左侧”)。祝您度过愉快的一周!
  • 如果以下答案之一符合您的需要,您可以接受。该图标位于答案左侧的否决票和投票计数下方
  • 编辑:没关系,当我将鼠标悬停在链接上时,我必须刷新才能看到 alt,它告诉我我已经接受了答案。

标签: excel vba loops call


【解决方案1】:

你可以这样做:

Sub Defined(numCalls as Integer)
Dim i as Integer
If not numCalls > 0 Then Exit Sub
For i = 1 to numCalls

'The rest of your code


Next

End Sub

这将允许您这样做:

Call defined(3)

等等

【讨论】:

  • 谢谢大卫!它工作得很漂亮。我需要研究`numCalls`和`Next`的作用。我真的很感激。
  • numCalls 只是子例程“已定义”的局部变量(您可以将其命名为任何名称,真的,我只是选择了numCalls。您使用此变量来控制子程序执行多少次循环本身。NextFor/Next 循环结构的一部分,我在子内部使用它来控制子循环自身的次数:msdn.microsoft.com/en-us/library/office/…
【解决方案2】:
for i = 1 to 3
     Defined   '("Call" is optional)
next i

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-10
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多