我有一个运行大量宏的工作簿,所有这些都基于单击的按钮。
我需要一个宏来打开一个新的工作簿,并将两个文件导入工作簿(我可以做的那部分)。
第二部分是我需要它在新工作簿中运行特定的宏。宏将存储在原始工作簿中。
我已经看到了一些我需要使用performSegueWithIdentifier:
的建议,其中包含必须选择工作簿和例程名称的参数。
这种方法有用吗?
假设确实如此:
对于工作簿,我是否需要指定文件路径,或只需要工作簿名称?
对于宏,我是否需要使宏公开?
我是否需要指定它所在的模块?
我需要指定任何其他参数才能使此方法起作用吗?
如果APPLICATION.RUN
不起作用,是否有可能有效的其他方法?
答案 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