【问题标题】:Running Excel macros from Jenkins从 Jenkins 运行 Excel 宏
【发布时间】:2021-08-27 00:42:09
【问题描述】:

我正在尝试从 Windows 7 64 位 VM 上的 Jenkins Windows 服务运行 Excel 宏。我有一个指定 VBS 文件的批处理文件。然后在 VBS 文件中列出 Excel 宏。批处理文件在本地运行良好,但是当我从 Jenkins 运行它时,出现以下错误:

Microsoft VBScript 运行时错误:ActiveX 组件无法创建对象:'Excel.Application'

VBS 文件中以下各项的每个实例似乎都会出现该错误:

Set xlApp = CreateObject("Excel.Application")

只是四处搜索,我发现很多其他人在使用 cscript 的版本来执行 VBS 文件时遇到了问题。在 64 位计算机上,似乎必须使用 32 位版本的cscript。但是无论我如何尝试强制使用该版本的cscript,Jenkins 似乎都忽略了它并显示相同的错误,这让我认为cscript 版本不是我错误的原因。

我确实在 Excel 中启用了宏并检查了 ActiveX 设置。就像我说的,双击批处理文件,一切正常。肯定是 Jenkins 做了一些奇怪的事情导致了这个问题。

有什么想法吗?

【问题讨论】:

  • 您的 Office 安装的是 32 位还是 64 位?
  • 我遇到了类似的问题,我运行了 cscript .vbs 但得到了以下错误: Caused: java.io.IOException: Cannot run program "/bin/sh" (in目录 "C:\Jenkins\workspace\generateParams"): CreateProcess error=2, 系统找不到指定的文件。我的 vbs 脚本打开一个 excel 文件 --> 运行一个宏 --> 关闭它。excel 文件和 vbs 脚本位于同一位置,但与 jenkins 工作区不同。这是问题的原因吗?
  • 迟到了,但是有一个类似的问题 [Jenkins QC plugin Can't create TDConnection Object ](stackoverflow.com/questions/18319573/…) 指向一个workaround

标签: excel vba batch-file jenkins


【解决方案1】:

尝试使用

Set xlApp = GetObject("Excel.Application")

仔细阅读您的问题,您似乎在使用可执行文件时可能遇到问题。嗯,你能不能给出一个完整的命令行,而不是运行/双击foo.vbs 之类的script.exe foo.vba。我编了script.exe,但你应该明白了,为什么不指定可执行文件?

我很少听说过 Jenkins,请注意提供您认为可能与此问题相关的任何文档链接。这对于将来遇到相同问题的 stackoverflower 很有用。

【讨论】:

    【解决方案2】:

    我使用以下脚本打开 excel 并启动宏。我通常启动一个 WSF 文件,该文件通过 CSCRIPT 从 Jenkins/Batch File/Task Scheduler/etc 调用以下代码。像魅力一样工作(确保您在运行它的系统上安装了 Excel。)

    Set Excel = CreateObject("Excel.Application")
    Set Workbook = Excel.Workbooks.Open(excelfile)
    Excel.Application.Visible = True
    Excel.Application.DisplayAlerts = True
    Excel.Application.Run macroname
    Excel.ActiveWorkbook.Close
    Set Workbook = Nothing
    Set Excel = Nothing
    

    【讨论】:

      猜你喜欢
      • 2023-03-30
      • 2010-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-09
      • 1970-01-01
      相关资源
      最近更新 更多