如何成功执行vbscript?

Posted

技术标签:

【中文标题】如何成功执行vbscript?【英文标题】:How to execute vbscript successfully? 【发布时间】:2015-04-02 07:31:57 【问题描述】:

我有一个包含宏的 excel 文件。宏写在开发人员选项卡的 ThisWorkbook 中。我想通过在 Windows 任务调度程序中调度宏来自动运行宏。

我做了一些研究,发现我必须为此编写一个 vbscript 并运行 vb 脚本才能运行宏。

这是 vb 脚本。 vbscript 应该:

    打开excel文件 运行宏 关闭excel文件

这应该每天使用 Windows 任务调度程序在预定时间自动完成。

到目前为止,这是 vb 脚本:

'Script to start my filter.xls program with named macro
'MsgBox "In RunExcel"

' Create an Excel instance
Dim myExcelWorker
Set myExcelWorker = CreateObject("Excel.Application") 

' Disable Excel UI elements
myExcelWorker.DisplayAlerts = False
myExcelWorker.AskToUpdateLinks = False
myExcelWorker.AlertBeforeOverwriting = False
myExcelWorker.FeatureInstall = msoFeatureInstallNone

' Open the Workbook 
Dim oWorkBook
Dim strWorkerWB
strWorkerWB = "C:\Users\Desktop\service calibration details\CC.xlsm"

'MsgBox "Opening filter"

on error resume next 
Set oWorkBook = myExcelWorker.Workbooks.Open(strWorkerWB)
if err.number <> 0 Then
    ' Error occurred - just close it down.
    MsgBox "open Error occurred"
End If
err.clear
on error goto 0 

'MsgBox "Running macro"

Dim strMacroName
strMacroName = "CCA"
on error resume next 
' Run the macro
myExcelWorker.Run strMacroName
if err.number <> 0 Then
    ' Error occurred - just close it down.
    MsgBox "run macro Error occurred"
End If
err.clear
on error goto 0 

' Clean up and shut down
Set oWorkBook = Nothing
myExcelWorker.Quit
Set myExcelWorker = Nothing
Set WshShell = Nothing

我尝试使用基于 microsoft windows 的脚本主机来运行它。但我收到错误“发生运行宏错误”。

我在互联网上搜索。但是我找不到解决方案。

是什么导致了这个问题?

我写的vbscript有错误吗?

我如何成功执行此操作?

【问题讨论】:

发生错误”消息没有诊断价值。加&amp; " 0x" &amp; Hex(Err.Number) &amp; " " &amp; CStr(Err.Number) &amp; " " &amp; Err.Description,你就可以得到更多信息来找到罪魁祸首。提示:Run 方法启动一个在新 Windows 进程中运行的 程序... @JosefZ 我应该把它添加到哪里? MsgBox "bla-bla Error occurred" &amp; " 0x" &amp; Hex(Err.Number) &amp; " " &amp; CStr(Err.Number) &amp; " " &amp; Err.Description。对于所有bla-bla运行宏打开、... @JosefZ 可以在代码中编辑吗? 【参考方案1】:

作为解决此问题的另一种方法,您可以只使用一个简单的 VB 脚本文件来打开电子表格。像这样的:

Set xl = CreateObject("Excel.application")

xl.Application.Workbooks.Open "C:\Users\Desktop\service calibration details\CC.xlsm"
xl.Application.Visible = True

Set xl = Nothing

然后将您的 excel 宏放入 Workbook_Open 子中,以便在打开工作簿时执行它。在宏的末尾添加以下行:

ActiveWorkbook.Close False 'false prevents it from saving any changes
Application.Quit

或者如果你想保存

ActiveWorkbook.Save
Application.Quit

这应该可以解决问题!祝你好运。

【讨论】:

以上是关于如何成功执行vbscript?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 ShellExecute 从 VBScript 将参数传递给批处理文件 [重复]

如何在执行期间保持 VBScript 命令窗口打开

如何在vbscript中以变量为路径执行命令

VBScript 执行和评估命令

从 VBScript 调用任何带有俄语名称的文件/脚本失败

如何在 VBScript for Classic-ASP 中执行单行 If 语句?