好吧,我有3个模块。我的第一个模块是“主”,这是我需要调用其他模块的模块。我的意思是,当我跑主,我想它call/run
其他2模块。目前,当我按F5时,它不会这样做。我该怎么做呢?如何在VBA excel的另一个模块中运行/调用模块?
我当前的代码如下所示:
Sub main_TRY()
Call Module2
Call Module3
End Sub
所有帮助是极大的赞赏。谢谢。
好吧,我有3个模块。我的第一个模块是“主”,这是我需要调用其他模块的模块。我的意思是,当我跑主,我想它call/run
其他2模块。目前,当我按F5时,它不会这样做。我该怎么做呢?如何在VBA excel的另一个模块中运行/调用模块?
我当前的代码如下所示:
Sub main_TRY()
Call Module2
Call Module3
End Sub
所有帮助是极大的赞赏。谢谢。
答:
Sub main_TRY1()
Call Module2.Formating
Call Module3.Data
End Sub
只有**格式化**和**数据**被声明为* Private Sub *时才有必要。 A * Public Sub *是默认的,所以如果它们被声明为'Public Sub Formating(...)'或'Sub Formating(...)',那么'Call Formating(...)'或简单地'Formating(。 ..)'是适当的。除非你将参数投入到子中,否则不需要'(...)'。 – Jeeped
谢谢@Jeeped。从我的函数定义中删除_Private_后,我可以从另一个模块中调用它们。而且我不需要在调用我的(现在公开的)函数时包含模块名称。 –
我有我的VBA的脚本之一simular结构调查,它是这样的。
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
也许有点多,但我只是想让你知道我正在使用的代码的结构。
所以每次我点击BUTTOM“CommandButton1的” 上面这段代码将执行,但在你的情况下,每次调用该函数main_try(),你应该,如上面所指出的,呼吁该模块的功能,而不是模块本身。
希望它有帮助,最好的问候
Sub或'Function'定义是否叫'Module2'和'Module3'?你想'调用TheActualSubroutineName',而不是包含代码的模块。例如,您希望“调用main_TRY”,而不是“调用模块1” –
。好吧,我已经解决了。谢谢@Dan Wagner –