2015-06-12 68 views
1

好吧,我有3個模塊。我的第一個模塊是「主」,這是我需要調用其他模塊的模塊。我的意思是,當我跑主,我想它call/run其他2模塊。目前,當我按F5時,它不會這樣做。我該怎麼做呢?如何在VBA excel的另一個模塊中運行/調用模塊?

我當前的代碼如下所示:

Sub main_TRY() 
    Call Module2 
    Call Module3 
End Sub 

所有幫助是極大的讚賞。謝謝。

+0

Sub或'Function'定義是否叫'Module2'和'Module3'?你想'調用TheActualSubroutineName',而不是包含代碼的模塊。例如,您希望「調用main_TRY」,而不是「調用模塊1」 –

+0

。好吧,我已經解決了。謝謝@Dan Wagner –

回答

1

答:

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

只有**格式化**和**數據**被聲明爲* Private Sub *時纔有必要。 A * Public Sub *是默認的,所以如果它們被聲明爲'Public Sub Formating(...)'或'Sub Formating(...)',那麼'Call Formating(...)'或簡單地'Formating(。 ..)'是適當的。除非你將參數投入到子中,否則不需要'(...)'。 – Jeeped

+0

謝謝@Jeeped。從我的函數定義中刪除_Private_後,我可以從另一個模塊中調用它們。而且我不需要在調用我的(現在公開的)函數時包含模塊名稱。 –

0

我有我的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(),你應該,如上面所指出的,呼籲該模塊的功能,而不是模塊本身。

希望它有幫助,最好的問候

相關問題