vba中如何调用另一个以xls结尾后缀名excel中的宏并且传入参数
时间: 2024-03-17 17:42:11 浏览: 33
在VBA中调用另一个以xls结尾后缀名excel中的宏,可以使用以下代码:
```
Sub CallExcelMacro()
Dim xlApp As Excel.Application
Set xlApp = New Excel.Application
'打开指定的Excel文件
xlApp.Workbooks.Open "C:\example.xls"
'调用指定的宏
xlApp.Run "example_macro", "parameter1", "parameter2"
'关闭Excel文件
xlApp.Workbooks.Close
'释放Excel对象
Set xlApp = Nothing
End Sub
```
其中,example.xls是要打开的Excel文件名,example_macro是要调用的宏名,"parameter1"和"parameter2"是传递给宏的参数。
需要注意的是,调用另一个Excel文件中的宏时,需要确保该文件的安全性设置为“低”,否则可能会无法调用成功。
相关问题
vba中如何调用另一个以xls结尾后缀名excel中的宏,并且输入选择文件的参数
要调用另一个以xls结尾后缀名excel中的宏,您可以使用以下VBA代码:
```vb
Sub CallMacroInAnotherWorkbook()
Dim wb As Workbook
Dim sMacroName As String
Dim sFilePath As String
'选择要打开的Excel文件
sFilePath = Application.GetOpenFilename("Excel Files (*.xls), *.xls")
If sFilePath <> False Then '如果用户选择了文件
Set wb = Workbooks.Open(sFilePath)
sMacroName = "MacroName" '宏的名称
'调用另一个Excel文件中的宏
Application.Run "'" & wb.Name & "'!" & sMacroName
'关闭打开的Excel文件
wb.Close SaveChanges:=False
End If
End Sub
```
在上面的代码中,我们使用了`GetOpenFilename`函数来让用户选择要打开的Excel文件,并将文件路径存储在`sFilePath`变量中。然后使用`Workbooks.Open`方法打开该文件,并将其分配给`wb`变量。接下来,我们定义了`sMacroName`变量来存储要调用的宏的名称。最后,我们使用`Application.Run`方法来调用另一个Excel文件中的宏,并在`Run`方法中使用文件名和宏的名称。最后,我们关闭打开的Excel文件。
需要注意的是,如果您要调用的宏需要输入参数,那么您需要在`Application.Run`方法中传递参数。例如,如果要将参数`"Hello World"`传递给名为`MacroName`的宏,则可以这样写:
```vb
Application.Run "'" & wb.Name & "'!" & sMacroName, "Hello World"
```
这里的`"Hello World"`是参数值。
vba中如何调用另一个以xls结尾后缀名excel中的宏并且适用多有office版本
您可以使用以下VBA代码来调用另一个Excel文件中的宏:
```VBA
Sub CallMacroInAnotherWorkbook()
Dim xlApp As Object
Dim xlBook As Object
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("C:\Path\To\AnotherWorkbook.xls")
' 调用 AnotherWorkbook.xls 中的宏 Macro1
xlApp.Run "'AnotherWorkbook.xls'!Macro1"
xlBook.Close SaveChanges:=False
Set xlBook = Nothing
xlApp.Quit
Set xlApp = Nothing
End Sub
```
在这个例子中,您需要将 `C:\Path\To\AnotherWorkbook.xls` 替换为您要调用的Excel文件的路径。然后,您可以使用 `xlApp.Run` 方法来调用该Excel文件中的宏。请注意,您需要在宏名前面加上文件名和单引号,以指明该宏所在的Excel文件。
此外,为了确保您的代码可以在所有Office版本中运行,请确保您的代码在VBA编辑器中的选项设置中将 "启用所有宏" 设置为 "启用"。您可以在VBA编辑器中的 "工具" 菜单下找到 "选项" 来进行设置。
相关推荐
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)