gpt4 book ai didi

excel - 使用 VBA 通过 Word 控制 Excel 时遇到问题;后期绑定(bind)和早期绑定(bind)不起作用

转载 作者:行者123 更新时间:2023-12-02 18:27:33 26 4
gpt4 key购买 nike

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

我使用的是 Office 2011 for Mac。我的目标是从 Word 文档中获取信息,并将其插入到 Excel 工作簿中最新的此类条目之后。 doc这个词是一个契约(Contract)生成器。每个工作簿将包含大约 30 个相关契约(Contract)的详细信息。我想使用的逻辑是允许用户输入工作簿的名称,然后 VBA 将获取完整路径名和路径,然后能够控制工作簿。然而,我无法让一个更简单的案例发挥作用。

首先,我什至无法使用 word 来控制当前存在的 excel 实例(尽管 CreateObject("Excel.Application") 确实有效。我尝试了早期绑定(bind)并得到了:

automation error (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

我还尝试使用后期绑定(bind),这给了我:

error 424 (object required)

这是产生该结果的代码:

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

此外,对于早期绑定(bind),如果您在 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

关于excel - 使用 VBA 通过 Word 控制 Excel 时遇到问题;后期绑定(bind)和早期绑定(bind)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20912078/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com