【问题标题】:.bat file running an excel macro in the background (or .vbs solution).bat 文件在后台运行 excel 宏(或 .vbs 解决方案)
【发布时间】:2020-05-11 00:20:53
【问题描述】:

我有以下问题: - 任务:应该打开一个准备好的excel,并在打开一个宏时执行。 - 这个任务应该在每天的给定时间(比如 10:00)执行,应该在后台执行(这样用户就不会受到打扰)。

问题: 1)如果我尝试使用 .vbs 文件(在任务调度程序中)执行此操作,则执行发生在后台,但是,某些功能会丢失(有一个与公司应用程序建立连接的 excel 加载项,来自它应该检索一些数据->未建立连接,未接收到数据)。我猜它缺乏特权或类似的东西。 VBS 预兆是:

Dim objExcel
Set objExcel=CreateObject("Excel.Application")
objExcel.Application.Run "'C:\SomePath.xlsm'!Module1.Controller"

2) 如果我尝试使用 .bat 文件,它可以工作(连接正常,接收到数据),但是它会闪烁并且不在后台运行。简单代码:

Start "C:\Program Files (x86)\Microsoft Office\root\Office16\Excel.exe" "C:\SomePath.xlsm"

有人遇到过此类问题吗? 我对任何其他解决方案持开放态度。 :)

谢谢!

【问题讨论】:

  • 我相信您可以将高达 Workbook_Open() 的特定 Excel 文件设置为 .visible = false,因此在使用 .bat 文件时允许连接。那是我过去做过的,虽然你必须在第一次使用时启用内容

标签: excel batch-file vbscript


【解决方案1】:

你可以像这样在后台批量运行它(主要是VBScript代码):

<!--
@Echo Off
Cscript //Nologo "%~f0?.wsf" //job:VBS
Exit /B
-->
<package>
  <job id="VBS">
    <script language="vbscript">
       Dim WshShell : Set WshShell = CreateObject("Wscript.Shell")
       WshShell.Run """C:\Program Files (x86)\Microsoft Office\root\Office16\Excel.exe 'C:\SomePath.xlsm'""", 0, True
    </script>
  </job>
</package>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    相关资源
    最近更新 更多