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