【问题标题】:VB Script Keeps giving me "Macro may not be available in this workbook or all macros may be disabled"VB 脚本不断给我“此工作簿中可能没有宏或所有宏都可能被禁用”
【发布时间】:2018-11-12 03:31:14
【问题描述】:

我一直在尝试制作一个简单的 VBS,它只打开 Excel 并运行特定的宏。几个月前,当我写这篇文章时,我发誓它已经奏效了。我已经在论坛上搜索了类似的错误,但似乎没有任何建议对我有用。

有什么想法吗?

Option Explicit
Dim xlApp, xlBook

Set xlApp = CreateObject("Excel.Application")

xlApp.DisplayAlerts=false
Set xlBook = xlApp.Workbooks.Open("C:\Users\lnguy\Desktop\New Chemical Receipt Form.xlsm", 0, True)

xlApp.Run "'C:\Users\lnguy\Desktop\New Chemical Receipt Form.xlsm'!Expired2"

xlBook.Close

xlApp.Quit

Set xlBook = Nothing
Set xlApp = Nothing

WScript.Echo "Finished."
WScript.Quit

【问题讨论】:

  • Run 方法传递缺少“FTO 开发”部分的路径。
  • 这个宏存储在哪里?你的宏的其余部分在哪里?它在哪一行出错(或者它只是在一般情况下出错)?
  • 抱歉刚刚发现我复制并粘贴了错误的路径。我用正确的路径编辑了代码,但它仍然不起作用。宏存储在 Excel 工作表的 sheet1 上。 .Run 行上的 vbs 脚本错误。我已将工作表的引用添加为 Sheet1!Expired2 用于宏,但它不起作用。有什么想法吗?

标签: excel vbscript vba


【解决方案1】:

你第二次提到它时有不同的路径(FTO Development\ 不见了),所以找不到宏。

我建议通过使用路径变量来防止这种情况发生:

Dim path
path = "C:\Users\lnguy\Desktop\FTO Development\New Chemical Receipt Form.xlsm"

' ....

Set xlBook = xlApp.Workbooks.Open(path, 0, True)

xlApp.Run "'" & path & "'!Expired2"

【讨论】:

  • 对不起,我在那里复制并粘贴了错误的路径。即使使用变量作为路径,它也会给我 .Run 行上的错误。
  • 如果您手动打开 Excel 文件会发生什么。您是否收到有关运行宏的安全性的警告?宏是否创建为Public Sub?你可以从 Excel 中运行它吗?
  • 我可以从 excel 运行宏。
  • 你能不能再回复我另外两个问题?
  • 您能提供一些反馈吗?
【解决方案2】:

将宏从 Worksheet1 移到它自己的模块中,并确保它是 Public Sub,以便可以引用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-16
    • 1970-01-01
    • 2013-08-25
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    • 2022-07-14
    • 2017-03-09
    相关资源
    最近更新 更多