首页 文章

当我打电话给子vba时会发生什么

提问于
浏览
0

我正在使用调用函数来激活其他宏,但我并不完全确定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 回答

  • 1

    VBA将按照给定的顺序处理代码的所有行,除非其中一行发生错误 . 实际上,您的代码将停在错误点 .

    在哪里调用 Save() 实际上取决于您希望代码如何工作 . 如果你想确保在保存每次调用 Edit() 更改后,我会在 Edit() 内调用 Save() . 如果有时你想在不调用 Save() 的情况下调用 Edit() ,则不应将 Save() 的调用放入 Edit() .

  • 0

    当您从另一个过程中调用过程时,程序控制将返回到 Call 行正下方的行 . 在您的示例中,当 Edit 过程到达 End SubExit Sub 行时,程序控制将在 Call Save 行( Call Edit 下面的行)上继续 .

    Call 关键字包含在语言中以便向后兼容 . 你可以调用编辑程序

    Edit
    

    没有 Call 关键字 . 如果你喜欢使用 Call ,它不会伤害任何东西 .

相关问题