2015-08-17 96 views
0

我有一個工作簿,運行大量的宏,所有基於哪個按鈕被點擊。打開新的工作簿,並運行宏,使用按鈕

我需要一個宏來打開一個新的工作簿,並將兩個文件導入工作簿(我可以做的那部分)。

第二部分是我需要它在新的工作簿中運行特定的宏。宏將存儲在原始工作簿中。

我見過一些建議,我需要使用APPLICATION.RUN,它具有必須選擇工作簿和例程名稱的參數。

此方法有效嗎?

假設它:

工作簿,我需要指定文件路徑,或者只是工作簿的名稱?

對於宏,我是否需要使宏公開

我需要指定模塊它在嗎?

是否有任何其他參數需要指定才能使此方法起作用?

有沒有可能工作的另一種方法,如果APPLICATION.RUN不起作用?

回答

1

你需要使用的是:

Application.Run "'FileName.xlsm'!MacroName", "Parameters"

不需要指定路徑如果您的工作簿已經打開,你不需要指定模塊爲你不能有不同的程序名稱,並且沒有其他參數需要

過程並不需要公開(讓我知道如果這樣做),以及在VBA替代方法,是沒有的(因爲Call方法只能在同一工作簿工作),但也有一些在VB中如果這不起作用。

1

這是一個很簡單的例子,你可以適應:

Sub demo() 
    Dim Original As Workbook 
    Dim Created As Workbook 
    Set Original = ThisWorkbook 

    ' create a new workbook 

    Workbooks.Add 
    Set Created = ActiveWorkbook 

    ' go back 

    Original.Activate 

    'make a change in the newly created workbook 

    Created.Sheets("Sheet1").Range("A1").Value = "whatever" 

    ' save the newly created workbook 

    Created.Save 
    Created.Close 

End Sub 
相關問題