我需要一个 vbs 脚本来打开一个.xlsm文件,在其中运行一个宏并再次关闭该文件。
我在网上找到了一个完美运行的脚本。问题是,我不明白怎么做。
这是脚本:
Sub MacroExcel()
Dim ExcelApp
Dim ExcelFile
Set ExcelApp = CreateObject("Excel.Application")
Set ExcelFile = ExcelApp.Workbooks.Open("D:\File1.xlsm")
ExcelApp.Visible = True
ExcelApp.Run "Macro1"
ExcelApp.Quit
Set ExcelFile = Nothing
Set ExcelApp = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)
这首先如何打开文件?据我了解,这一行:
Set ExcelFile = ExcelApp.Workbooks.Open("D:\File1.xlsm")
Run Code Online (Sandbox Code Playgroud)
为变量分配一个方法ExcelFile。但是,ExcelFile在代码中不再使用了。
脚本如何知道实际应该打开文件?
据我了解,这一行:
Set ExcelFile = ExcelApp.Workbooks.Open("D:\File1.xlsm")为变量 ExcelFile 分配一个方法
那是你理解错误的地方。它没有分配方法给变量ExcelFile,它分配结果的执行的方法ExcelApp.Workbooks.Open("D:\File1.xlsm")
你看,当你让 Excel 打开一个文件时,它不仅会在 Excel 中打开实际文件,还会返回一个类型为Workbook
的对象,就是这个工作簿对象存储在变量中ExcelFile
现在你完全正确,在这个片段中没有使用实际的工作簿对象。因此,与其将结果分配给变量,他们还可以执行该方法并像这样忽略结果对象。
ExcelApp.Workbooks.Open "D:\File1.xlsm"
Run Code Online (Sandbox Code Playgroud)