vba中如何调用另一个以xls结尾后缀名excel中的宏,并且输入选择文件的参数
时间: 2024-03-17 09:42:52 浏览: 22
要调用另一个以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"`是参数值。