你怎么run/call一个模块在另一个模块里VBAexcel?

How do you run/call a module in another module in VBA excel?

好的,我有 3 个模块。我的第一个模块是 "main",这是我需要调用另一个模块的模块。我的意思是,当我 运行 main 时,我希望它 call/run 其他 2 个模块。目前,当我按 F5 时,它不会执行此操作。我该怎么做?

我当前的代码如下所示:

Sub main_TRY()
    Call Module2
    Call Module3
End Sub

非常感谢所有帮助。谢谢。

答案:

Sub main_TRY1()
    Call Module2.Formating
    Call Module3.Data
End Sub

我的 vba 脚本之一有一个模拟结构,它是这样的。

Private Sub CommandButton1_Click()
Call GetData1
End Sub

在我的模块 2 中,它看起来像这样

Sub GetData1()
'my code
Dim IE As Object
Dim dd As Variant

Set IE = GetObject("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}")

IE.Visible = False

IE.Navigate "https://www.avanza.se/aktier/om-aktien.html/5247/investor-b"

Application.StatusBar = "Loading, Please wait..."

IEWait IE

Application.StatusBar = "Searching for value. Please wait..."
dd = IE.Document.getElementsByClassName("lastPrice SText bold")(0).innerText
Range("G7").Value = dd
End Sub

可能有点多,但我只是想让您了解我正在使用的代码的结构。

所以每次我点击按钮时 "CommandButton1" 上面的代码将执行,但在您的情况下,每次调用函数 main_try() 时,如上所述,您应该调用模块中的函数,而不是模块本身。

希望对您有所帮助,此致

我遇到过类似的情况,我需要调用“Private Sub”例程。 我决定让每个模块调用下一个。 这允许我调用第一个模块,然后它将 运行 代码并在成功时触发下一个模块,依此类推。

Sub main_TRY()
    Application.Run ("ModuleNameHere")
End Sub

只需将以下内容添加到每个模块的末尾,让它调用您想要的下一个模块 运行 "NextModuleNameHere":

    Application.Run ("NextModuleNameHere")