打开新工作簿,然后使用按钮运行宏

时间:2015-08-17 11:41:20

标签: excel vba excel-vba

我有一个运行大量宏的工作簿,所有这些都基于单击的按钮。

我需要一个宏来打开一个新的工作簿,并将两个文件导入工作簿(我可以做的那部分)。

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

我已经看到了一些我需要使用performSegueWithIdentifier:的建议,其中包含必须选择工作簿和例程名称的参数。

这种方法有用吗?

假设确实如此:

对于工作簿,我是否需要指定文件路径,或只需要工作簿名称?

对于宏,我是否需要使宏公开

我是否需要指定它所在的模块

我需要指定任何其他参数才能使此方法起作用吗?

如果APPLICATION.RUN不起作用,是否有可能有效的其他方法

2 个答案:

答案 0 :(得分:1)

您需要使用的是:

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

如果您的工作簿已经打开,不需要指定路径不需要尽可能指定模块&# 39; t具有不同程序的双重名称,不需要其他参数

程序不需要公开(如果有的话,让我知道),对于VBA中的替代方法,没有(仅作为Call方法在同一个工作簿中工作),但如果没有工作,那么在VB中有一些工作。

答案 1 :(得分: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