【发布时间】:2014-06-30 22:22:23
【问题描述】:
我正在 Linux 上运行一些生成某些 CSV 的任务。生成后,我需要将它们复制到 Excel 文件的不同工作表中,然后运行一些 VBA 宏来生成报告。由于这必须每天进行多次(没有预先定义/固定的时间表),我想自动化它。
这是我尝试过的: 我编写了一个 VBScript,它获取 CSV 文件和其他所需的输入文件,打开一个 excel 文件,将 CSV 复制到 excel 中,运行一些 VBA 宏,然后保存并关闭结果。当在 Windows 服务器上本地触发时,此 VBScript 工作正常。
我已经上传了涉及here 的文件的更简单版本,这在一定程度上阐明了我的要求(请注意,与此处的宏相比,我需要运行的宏要复杂得多(约 500 行))。 存档中有四个文件:
- Template.xlsm:要粘贴数据的报表的 Excel 模板
- Input_Sheet2.csv : 将要粘贴到模板中的输入数据到工作表 2
- Input_Sheet3.csv :要粘贴到模板中的输入数据到工作表 3
- Run.vbs:触发 Excel 模板中存在的“复制粘贴”宏的 vbscript。
运行VBScript的命令是:'cscript //Nologo Run.vbs /NoCancel'
现在,为了自动化整个任务,我想通过 ssh 从 Linux 远程触发这个 VBScript。我在 windows 机器上安装了 cygwin ssh 守护程序,并促进了来自 Linux 机器的 ssh 连接。这个来自 Linux 的 cygwin ssh 连接允许运行多个 windows 命令,但无法运行 VBScript 并且不会产生任何 excel 输出。
我不知道哪个组件有限制。 cygwin ssh 是否不利于执行 VBScript? VBScript 是否不利于远程创建文件? Linux 上的 ssh 客户端是否不允许以 GUI 格式打开 excel?或者还有另一种方法可以从 Linux 自动执行此任务。
谢谢,
舒巴姆
【问题讨论】:
-
没有错误信息。它只是无限期地挂起,直到你强制关闭它。
标签: linux excel vba vbscript ssh