我正在使用调用函数来激活其他宏,但我并不完全确定VB如何读取此函数。 (我在MS Excel 2010中使用它)
例如:
Sub main macro ()
blabla
blabla
Call Edit
Call Save
Call HistoryLog
End Sub
此代码有一些If功能,在某些时候会进入“Call Edit” 这里将激活宏“子编辑()”。但我需要这段代码来编辑数据,将数据保存到新文件中,并在其他Excel工作表中创建历史记录。
如果VBA完成了“Sub Edit()”部分,代码将如何继续? 它会调用“Sub Save()”部分吗? 或者我是否真的要求在“子编辑()”部分的末尾键入“调用子保存”?
答案 0 :(得分:1)
VBA将按照给定的顺序处理代码的所有行,除非其中一行发生错误。实际上,您的代码将停在错误点。
调用Save()
的位置实际上取决于您希望代码的工作方式。如果您想确保在每次调用Edit()
次更改后保存,我都会在Save()
内致电Edit()
。如果有时您想在不致电Edit()
的情况下致电Save()
,则不应将Save()
的电话转入Edit()
。
答案 1 :(得分:0)
当您从另一个过程中调用过程时,程序控制将返回到Call
行正下方的行。在您的示例中,当Edit
过程到达End Sub
或Exit Sub
行时,程序控件将继续Call Save
行(Call Edit
下方的行)
Call
关键字包含在语言中以便向后兼容。您可以像
Edit
没有Call
关键字。如果你喜欢使用Call
,它不会伤害任何东西。