【问题标题】:VBS crashing after VBA macro is done?VBA宏完成后VBS崩溃?
【发布时间】:2019-06-04 08:33:36
【问题描述】:

我正在尝试为我的 Excel 宏创建 VBS 脚本,这样用户就不必手动打开 Excel,也不必查看 Excel,而只能看到用户窗体和结果。

打开 Excel VBA 的代码完美运行。但是,当 Excel VBA 宏完成时,VBS 代码将失败并使 Excel 保持打开状态。由于 Excel 单用户政策,其他用户无法访问。

有什么想法吗?

我的 VBA 代码以 Exit Sub 命令结尾。

Set objExcel = CreateObject("Excel.Application")
objExcel.Application.Run "C:\Users\Flori\Desktop\Mail_Verteiler.xlsm!Modul1.Run"
objExcel.DisplayAlerts = True
objExcel.Application.Quit
Set objExcel = Nothing

输出的错误是:

宏可能不可用或所有宏已停用。

【问题讨论】:

  • 您是在第一次运行时出现该错误,还是在 Excel 处于打开状态的后续时间出现该错误?另外,这可能是一个错字吗? Modul1 而不是 Module1 ?
  • 当我运行德语版本时,Modul1 是正确的。宏本身完成后会发生错误。例如; (我的宏运行一个用户表单,它写一封电子邮件)我运行 VBS,它打开表单,它写电子邮件,用户表单关闭,发生 VBS 错误。 (关闭 VBA 宏)
  • “当 Excel VBA 宏完成时,VBS 代码失败” VBScript 代码究竟是如何失败的?在代码中的哪一点?请显示完整的错误信息(包括错误代码和行号)。
  • 这是同步问题吗? VBS 是否知道等待 Excel 完成。它可能需要暂停。那么,为什么不将关闭 Excel 的所有代码都放在 Excel 本身中呢?似乎是一种更稳定的方法。
  • @Gareth 感谢您的想法。这解决了我的问题。 AnsgarWiechers 现在无法重现该问题。错误消息是,Windows 无法找到要使用的宏(如代码中编程的那样)

标签: excel vba vbscript


【解决方案1】:

您的代码所在的 Excel 是 .xlsm 吗?可能是.xls,这就是你得到Macro possibly not avaible or all macros have been deactivated的原因。

【讨论】:

  • 是的,它是一个 .xlsm
【解决方案2】:

@Gareth 提供了使用Application.Quit方法在宏内部使用 VBA 关闭 excel 的最终想法。

这已经解决了问题。

谢谢大家

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多