我无法使用自动化从Word控制Excel,这应该可以从GetObject
函数中使用。
我正在使用Office 2011 for Mac。我的目标是从word文档中获取信息,并在最近的此类条目之后将其插入到excel工作簿中。 doc这个词是契约生成器。每个工作簿将包含大约30个相关合同的详细信息。我想使用的逻辑是允许用户输入工作簿的名称,然后VBA将获得完整的路径名和路径,然后将能够控制工作簿。但是,我不能做一个更简单的案例工作。
首先,我甚至无法控制当前现有的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
我也试过使用后期绑定,这给了我:
错误424(需要对象)
以下代码产生:
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
我去了 tools->引用并添加到Excel对象中,因此我不确定该程序的这个简单部分是否会起作用。
我很乐意,如果有人可以帮助我让这部分工作,理想情况下,我的程序部分将允许我收集工作簿的名称(通过输入框,获取输入文件的完整路径名称)然后控制那个工作簿。其他所有东西都在我的程序中运行,但是我无法在word和excel之间找到这个关键桥梁来运行。
答案 0 :(得分:3)
尝试:
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
对于早期绑定,如果在Dim语句中使用New关键字,则不需要GetObject:
Sub WorkOnAWorkbook()
Dim Oxl As New Excel.Application
Dim owB As Excel.Workbook
'Not needed Set Oxl = GetObject(, "Excel.Application")
Set owB ...
End Sub