如何使用VBScript有效刷新多个Excel电子表格的外部数据?

Sam*_*Sam 4 vbscript excel vba

我在一个XLSM工作簿的模块中有一个宏,刷新所有外部数据,然后保存并关闭该工作簿.

ActiveWorkbook.RefreshAll
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.Quit
Run Code Online (Sandbox Code Playgroud)

我使用VBScript文件作为计划任务的一部分运行该宏

objExcel.Workbooks.Open(fname)
objExcel.Visible = True
On error resume next
objExcel.Run "RefreshAllData"
Run Code Online (Sandbox Code Playgroud)

问题:如何重用现有工作簿中的现有宏来刷新多个其他工作簿的所有数据?(即我正在寻找对VBScript文件的必要修改,我想最小化对宏本身的更改.文件名将包含在VBScript文件中)TIA.

Ans*_*ers 9

我建议不要像这样重复使用一个简单的宏.而是将刷新功能合并到VBScript中:

Set fso = CreateObject("Scripting.FileSystemObject")
Set xl  = CreateObject("Excel.Application")
xl.Visible = True

For Each f In fso.GetFolder("C:\some\folder").Files
  If LCase(fso.GetExtensionName(f.Name)) = "xlsx" Then
    Set wb = xl.Workbooks.Open(f.Path)
    wb.RefreshAll
    wb.Save
    wb.Close
  End If
Next

xl.Quit
Run Code Online (Sandbox Code Playgroud)