【问题标题】:Opening an Excel workbook macro from Access从 Access 打开 Excel 工作簿宏
【发布时间】:2012-08-20 19:17:52
【问题描述】:

首先,我搜索并阅读了类似的主题,并尝试了提出的解决方案并解决了其他人的问题(主要在工作簿名称周围使用单引号),但在我的情况下并没有奏效。

我想做的很简单:我想从 Access 调用 Excel 工作簿。工作簿已经打开(使用 VBA),所以这不是工作簿被关闭的问题。以下是我尝试运行宏的方式:

Application.Run "'" & xlWb.Path & "\" & xlWb.Name & "'" & "!mainParcourirTrouverItem"

结果:

'I:\47491\...\Trouver items global.xlsm'!mainParcourirTrouverItem

我尝试了一些变体,例如不使用完整路径(仅文件名)、不使用单引号、在子名称末尾添加括号...

另外,我仔细检查了子名称的拼写是否正确。我真的没看到:|

哦,只是为了提供上下文,这里是围绕此代码的完整子:

Private Sub Commande10_Click()
    Dim xlApp As Excel.Application
    Dim xlWb As Excel.Workbook

    Set xlApp = New Excel.Application

    With xlApp
        .Visible = False
        Set xlWb = .Workbooks.Open(FichierImportExcel, ReadOnly:=True)
    End With

    Application.Run "'" & xlWb.Path & "\" & xlWb.Name & "'" & "!mainParcourirTrouverItem"

'    Call importer_transitsrubriques_Click
End Sub

非常感谢。

【问题讨论】:

  • 我在自己的代码中使用"'" & ThisWorkbook.Name & "'!SetMenu"。您是否尝试过只使用Application.Run "'" & xlWb.Name & "'" & "!mainParcourirTrouverItem",因为文件已经打开? (只需从调用中删除部分。)

标签: excel ms-access vba ms-access-2007


【解决方案1】:

xlApp.Run 不是Application.Run

Application 指的是 Access,而不是 Excel。

【讨论】:

  • 嘿,谢谢。我知道这一定是愚蠢的。当它可用时,我会接受答案。您是否也知道为什么我现在收到一条错误消息,告诉我它无法激活它(这告诉我它确实找到了它但由于某种原因无法运行它)?
  • 尝试从 Excel 即时窗口测试您的 Application.Run 行 - 这可能会告诉您一些有用的东西。或在此处发布确切的错误消息。
  • 抱歉,之前没有看到您的评论。我通过在子名称前面使用模块名称解决了这个问题。
猜你喜欢
  • 2018-12-29
  • 1970-01-01
  • 2018-07-27
  • 2014-09-12
  • 2015-06-02
  • 2017-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多