在多个文件和路径中运行 Excel 宏

在多个文件和路径中运行 Excel 宏

我需要帮助来增强我实施的方法。以下是详细信息。

我有多个 Excel 电子表格(xls,最初在 Excel 2007 或 2010 上编写),其中有 3 个主要宏,我想自动按顺序运行。

我为每个远程位置都有一个文件,每个远程位置分为三个主要区域

因此我将所有这些文件保存在共享驱动器上,如下所示:

Area A (folder)
  Office/Plant A.xls
  Office/Plant B.xls

  Office/Plant C.xls
Area B
  Office/Plant D.xls
  Office/Plant X.xls

我为每个 xls 文件创建了一个唯一的 VBS,然后从 bat 文件执行所有脚本。

每个 VBS 文件的代码基本相同,但我已经“硬编码”了路径和文件名......

有没有办法可以提供三个路径和所有文件的名称作为变量,以便相同的代码可以循环遍历文件列表并按顺序执行三个宏?(宏的名称始终相同)

这是我目前正在使用的代码:(文件受到保护)

Dim xlApp
Dim xlWkb

Set xlApp = CreateObject("excel.application")

Set xlWkb = xlApp.Workbooks.Open("P:\Area A\Office/Plant A.xls")
'xlWkb.RunAutoMacros 1 'xlautoopen ???
xlApp.Run ("unprotect_spreadsheets")
xlApp.Run ("Download_Data")
xlWkb.Save
xlApp.Run ("Protect_SpreadSheets")
xlWkb.Save
xlWkb.Close false

Set xlWkb = Nothing
xlApp.Quit
Set xlApp = Nothing

WScript.Echo "Finished: Office/Plant A.xls"

您能提出一些建议吗?我想开始初始化变量和路径列表,因为所选目录中并非所有 XLS 文件都是脚本的有效条目...

有什么想法吗?

答案1

VBS 相当不灵活,而且与手头的任务脱节,所以与其用它来管理事情,为什么不直接用一个控制工作簿来触发和控制流程呢?这样,错误处理和审计就可以更加优雅和信息丰富,而且对象是原生的,这让事情变得容易得多。

相关内容