这是如何工作的 - vbs 脚本如何知道它应该打开文件?

ikw*_*iet 3 vbscript

我需要一个 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在代码中不再使用了。

脚本如何知道实际应该打开文件?

Gee*_*ens 5

据我了解,这一行:

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)