Excel 获得;无法运行宏…”;VBA中的错误

Excel 获得;无法运行宏…”;VBA中的错误,excel,vba,powerpoint,Excel,Vba,Powerpoint,我最近学习了如何在VBA中编程,并通过阅读本网站上以前提出的问题和答案获得了一些非常有用的帮助。然而,我在我的一个程序中遇到了一个问题,似乎没有直接解决。所以我会在这里问 我正在制作一个Powerpoint宏,它会自动用新数据更新一些幻灯片。对于一张包含excel表格的幻灯片,我希望宏打开一个excel文件,在excel文件中运行现有宏以使用新数据填充电子表格,最后将表格复制到powerpoint幻灯片。到目前为止,我的代码(没有复制部分)如下: 它一直正确运行,直到我到达“myXL.Run…”

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

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

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


当我直接打开文件并以这种方式启动它时,excel宏运行正常。我有点纠结于下一步该做什么。有人有什么建议吗?

问题可能是因为您没有打开工作簿。但关键是确保在执行代码后释放对象;这样,f您的powerpoint文件未“锁定”ile,或者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

太棒了。这对我也很管用。我刚刚改编了这一部分

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

“到我的文件”

在另一个应用程序中调用其他文件中的宏时可能会非常棘手。在尝试调用该宏之前,您应该让Excel打开该文件。并删除.Run参数中的文件夹路径。根据Master.xlsm中宏的编写方式,它可能不会生成任何内容。
   myXLS.Sheets("VLOOKUP").Range("J1").Value = "EPL"
        myXLS.Application.Run ("BABox_Change")