excel - 调用 Sub 和 Application.Run 之间的区别

标签 excel vba method-call

在我的企业中,我们有几个团队致力于非常简单的宏。我正在尝试使它们都可以相互读取并且采用某种类似的格式,以便新加入者可以开始处理数据。

我提到简单的宏,因为没有人会使用带参数的 Subs - 无论如何,大多数都是从 Macro Recorder 派生的

一半的团队使用:

Sub button()

Call sub1()
Call sub2()
Call sub3()
Call sub4()

End Sub

另一半使用

Sub button()

Application.Run("sub1")
Application.Run("sub2")    
Application.Run("sub3")    
Application.Run("sub4")

End Sub

我知道,如果你的子程序没有参数,那么 Application.Run 有一个用途 - 但由于它几乎没有任何符号 - 人们仍然使用 Application.Run("") 是有原因的吗? ?

每次使用它的速度和流程都可以被 Call 击败吗? ?

最佳答案

您也可以通过application.run传递参数。我在循环宏时使用它。在上面的示例中,不必编写以下内容:

Sub button()
  Call sub1()
  Call sub2()
  Call sub3()
  Call sub4()
End Sub

你可以这样写:

for i = 1 to 4
  application.run("sub" & i)
next i

如果 subs 接受了 str 参数,你可以这样做:

for i = 1 to 4
  application.run("sub" & i, strVariable)
next i

关于excel - 调用 Sub 和 Application.Run 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55266228/

相关文章:

vba - 列出导致错误 #REF 的命名范围

c# - 在加载表单后立即调用方法的最佳方式是什么?

excel - 如何在excel中围绕动态范围进行聚合和最大值函数

perl - Perl中没有self参数的调用方法

java - 如何验证调用了非模拟方法?

excel - 使用vba根据行值更新列中的相应单元格

EXCEL:如果行中的列是 "nth",则为单元格着色

Python Pandas SUMPRODUCT 和 L 矩阵计算

arrays - 在 VBA 中隐藏连续值

excel - 尝试比较两列中的日期,如果 18 岁或以下将单元格涂成红色