VBA中出现“无法运行macros…”错误

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

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

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”:无法运行macros“K:\ Jackson \ Proposal Summary Master.xlsm!!BABox_Change”。 macros可能无法在此工作簿中或所有macros可能被禁用。

当我直接打开文件并以此方式启动时,excelmacros运行良好。 我有点卡在我接下来应该做的事情上。 有没有人有一些build议?

这个问题可能是因为你没有打开工作簿。 但是,关键是要确保代码执行后释放对象。 这样,文件不会被你的PowerPoint文件“locking”,或者额外的“隐藏”进程/ 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") 

到我的文件