将 VBA 宏转换为 Apps 脚本

使用 Macro Converter 插件可自动将包含 Visual Basic for Applications (VBA) 代码的 Excel 文件转换为 Google 表格和 Apps 脚本。

准备工作

您可能需要在转换文件之前更新 VBA 代码中不兼容的 API。对于状态为完全支持的文件,您可以继续执行第 1 步:转换文件

修改不兼容的 VBA API

对于状态为支持,但需采取变通方法需要调查的文件,您可以在转换后在 Apps 脚本中应用变通方法和修复措施,但我们建议您先修改熟悉的 VBA 代码,然后再转换文件。

对于兼容性报告中标记为“支持但需采取变通措施”或“需要调查”的每个 API,我们建议执行以下操作:

  • 如果 API 执行的功能对您的 VBA 宏并不重要,请从 VBA 代码中移除该 API。如果该函数至关重要,请更改代码以使用受支持的 VBA API 实现类似的行为。

  • 对于支持但需采取变通方法的 API,如果您找不到受支持的 VBA 替代方案,请保持 VBA 代码不变。转换后,在 Apps 脚本代码注释中查找推荐的变通方法。

  • 如果问题源自未实现的语言结构,请重写代码以避免使用这些结构。

  • 对于状态为需要调查的 API,请检查您的代码是否包含以下任何 API:

    • Adodb.connection
    • CreateObject:此 API 通常用于连接到数据库和企业资源规划软件。
    • Shell.execute
    • OleObject

    如果您的宏使用这些 API,请重新考虑是否转换这些文件。这些 API 通常管理 Apps 脚本无法轻松复制的关键功能,例如数据库连接或本地系统访问。

第 1 步:转换文件

  1. 在电脑上打开 Google 云端硬盘
  2. 在右侧侧边栏上,点击宏转换器插件 微距转换器的图标。如果您没有看到侧边栏,请点击右下角的“显示侧边栏”图标
  3. 点击添加文件和文件夹。宏转换器仅识别 Excel 文件。
  4. 选择要转换的文件或文件夹,然后点击选择。每次选择的文件数量不得超过 2,000 个。
  5. 如需更改转换后文件的保存位置,请点击“更改目标文件夹”图标 ,然后选择所需的文件夹。否则,文件会保存在“我的云端硬盘”文件夹中。
  6. 点击转换
  7. 转换完成后,点击查看结果

第 2 步:测试转换后的文件

转换文件后,请测试这些文件,确保它们能按预期运行。

运行您的 Apps 脚本代码

转换文件后,测试 Apps 脚本函数。 使用您通常在 Excel 文件中使用的数据测试转换后的文件。 如果可能,请将转换后的 Google 表格文件的输出与原始 Excel 文件的输出进行比较。

测试触发器

如果您的文件包含 onOpen()onEdit()onClick() 等触发器,请一并测试这些触发器。部分 VBA 触发器不会自动转换,需要在 Apps 脚本中进行处理。请参阅解决常见问题

查看 ReadMe 文件

如果转换后的文件附带生成了 ReadMe 文件,请查看该文件中列出的转换问题。

  • 如果这些问题可能会对您尚未测试的情况造成影响,请将建议的更改应用到您的代码中。
  • 如果您已测试所有可能的场景,并且一切都按预期运行,则可能无需进行任何更改。

第 3 步:修正错误

如果您在测试文件时遇到错误,请参阅修正转换后的代码中的错误

如果代码运行没有错误,但结果不符合您的预期,请打开文件的 ReadMe 文件。请查看每个部分,以帮助确定问题的原因并应用建议的修复方法。

修正错误后,请再次测试该文件,确保一切正常运行。