【问题标题】:Getting "Cannot Run the Macro..." Error in VBA在 VBA 中出现“无法运行宏...”错误
【发布时间】:2013-08-15 00:48:50
【问题描述】:

我最近学习了如何使用 VBA 进行编程,并通过阅读本网站上之前提出的问题和答案获得了一些非常有用的帮助。但是,我在我的一个程序中遇到了一个似乎没有得到非常直接解决的问题。那我就在这里问吧。

我正在制作一个 Powerpoint 宏,它会使用新数据自动更新一些幻灯片。对于包含 excel 表格的一张幻灯片,我希望宏打开一个 excel 文件,在 excel 文件中运行现有的宏以用新数据填充电子表格,最后将表格复制到 powerpoint 幻灯片。到目前为止,我的代码(没有复制部分)是这样的:

Private Sub GetProposals()
    Dim myXL As Excel.Application
    Dim myXLS As Excel.Workbook
    Dim ws As Excel.Worksheet

    Set myXL = New Excel.Application
    Set myXLS = GetObject("K:\Jackson\Proposal Summary Master.xlsm")
    Set ws = myXLS.Sheets(1)
    ws.Visible = xlSheetVeryHidden

    myXLS.Sheets("VLOOKUP").Range("J1").Value = "EPL"
    myXL.Run ("'K:\Jackson\Proposal Summary Master.xlsm'!BABox_Change")
End Sub

它运行正常,直到我到达“myXL.Run...”行。我收到一条消息说“运行时错误'1004':无法运行宏“K:\Jackson\Proposal Summary Master.xlsm'!BABox_Change'。该工作簿中的宏可能不可用,或者所有宏都可能被禁用。"

当我直接打开文件并以这种方式启动时,excel 宏运行良好。我有点坚持下一步应该做什么。有人有什么建议吗?

【问题讨论】:

  • 在另一个应用程序中调用其他文件中的宏可能会非常棘手。在尝试调用该宏之前,您应该让 Excel 打开该文件。并删除 .Run 参数中的文件夹路径。取决于 Master.xlsm 中的宏是如何编写的,它可能不会产生任何东西。

标签: excel vba powerpoint


【解决方案1】:

问题可能是因为您没有打开工作簿。不过,关键是要确保在代码执行后释放对象;这样,文件不会被您的 powerpoint 文件“锁定”,或者 Excel 的额外“隐藏”进程/实例保持打开状态。

Private Sub GetProposals()
    Dim myXL As Excel.Application
    Dim myXLS As Excel.Workbook
    Dim ws As Excel.Worksheet

    Set myXL = New Excel.Application
    Set myXLS = myXL.Workbooks.Open("K:\Jackson\Proposal Summary Master.xlsm")
    myXLS.Application.DisplayAlerts = False
    Set ws = myXLS.Sheets(1)
    ws.Visible = xlSheetVeryHidden

    myXLS.Sheets("VLOOKUP").Range("J1").Value = "EPL"
    myXLS.Application.Run ("BABox_Change")

    myXLS.Application.DisplayAlerts = True
    myXLS.Close(true) ' Change to false if you don't want to save Changes


    Set myXLS = Nothing
    Set myXL = Nothing
    Set ws = Nothing
End Sub

【讨论】:

    【解决方案2】:

    太棒了。这也对我有用。我刚刚调整了部分

       myXLS.Sheets("VLOOKUP").Range("J1").Value = "EPL"
            myXLS.Application.Run ("BABox_Change")
    

    到我的文件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-12
      • 2016-04-20
      • 2014-09-09
      • 1970-01-01
      相关资源
      最近更新 更多