用VBA实现Word控制Excel时遇到的问题;后期绑定和早期绑定不是';行不通

用VBA实现Word控制Excel时遇到的问题;后期绑定和早期绑定不是';行不通,excel,vba,macos,export-to-excel,excel-2011,Excel,Vba,Macos,Export To Excel,Excel 2011,我在使用自动化从Word控制Excel时遇到问题,这应该可以通过GetObject函数实现 我正在使用Office 2011 for Mac。我的目标是从word文档中获取信息,并在最近的此类条目之后将其插入excel工作簿。doc是一个合同生成器。每个工作簿将包含约30个相关合同的详细信息。我想使用的逻辑是允许用户输入工作簿的名称,然后VBA将获得完整的路径名和路径,然后能够控制工作簿。然而,我不能让一个更简单的案例起作用 首先,我甚至无法让word控制当前存在的excel实例(尽管Creat

我在使用自动化从Word控制Excel时遇到问题,这应该可以通过
GetObject
函数实现

我正在使用Office 2011 for Mac。我的目标是从word文档中获取信息,并在最近的此类条目之后将其插入excel工作簿。doc是一个合同生成器。每个工作簿将包含约30个相关合同的详细信息。我想使用的逻辑是允许用户输入工作簿的名称,然后VBA将获得完整的路径名和路径,然后能够控制工作簿。然而,我不能让一个更简单的案例起作用

首先,我甚至无法让word控制当前存在的excel实例(尽管
CreateObject(“excel.Application”)
确实有效。我尝试了早期绑定,并获得了一个:

自动化错误(91)

以下是生成以下内容的代码:

Option Explicit

Sub WorkOnAWorkbook()

   Dim Oxl As Excel.Application
   Dim owB As Excel.Workbook

   Set Oxl = GetObject(, "Excel.Application")
   Set owB = Oxl.Workbooks.Open(fileName:="Macintosh HD:Users:User:Desktop:Test.xlsx")

End Sub
Option Explicit

Sub WorkOnAWorkbook()

    Dim Oxl As object
    Dim owB As object

    Set Oxl = GetObject(, "Excel.Application")
    Set owB = Oxl.Workbooks.Open(fileName:="Macintosh HD:Users:User:Desktop:Test.xlsx")

End Sub
我还尝试使用后期绑定,这让我:

错误424(需要对象)

以下是生成以下内容的代码:

Option Explicit

Sub WorkOnAWorkbook()

   Dim Oxl As Excel.Application
   Dim owB As Excel.Workbook

   Set Oxl = GetObject(, "Excel.Application")
   Set owB = Oxl.Workbooks.Open(fileName:="Macintosh HD:Users:User:Desktop:Test.xlsx")

End Sub
Option Explicit

Sub WorkOnAWorkbook()

    Dim Oxl As object
    Dim owB As object

    Set Oxl = GetObject(, "Excel.Application")
    Set owB = Oxl.Workbooks.Open(fileName:="Macintosh HD:Users:User:Desktop:Test.xlsx")

End Sub
我转到工具->引用并添加了Excel对象,所以我不确定程序的这一简单部分是否会工作

如果有人能帮助我使这部分工作,理想情况下,我的程序的一部分,将允许我收集工作簿的名称,我会很高兴(通过输入框,获取输入文件的完整路径名,然后控制该工作簿。我的程序中的其他一切都正常,但我无法使word和excel之间的键桥正常工作。

尝试:

Set owB = Oxl.Workbooks.Open(FileName:="\Macintosh HD\Users\User\Desktop\Test.xlsx")
或者,如果这不起作用,请尝试:

Dim myFileName As String
myFileName = Application.GetOpenFilename
Debug.Print myFileName

If myFileName <> "" Then
    Set owB = Oxl.Workbooks.Open(FileName:=myFileName)
End If

谢谢。我尝试了一些新标签。谢谢你,伙计。我实际上找到了另一个解决办法。对不起,我还没有足够的声誉来击败你。