gpt4 book ai didi

vba - 如何使用 Word 宏从已打开的 Excel 工作簿中获取数据?

转载 作者:行者123 更新时间:2023-12-04 21:39:04 24 4
gpt4 key购买 nike

我目前正在努力使用 vba 宏,您能帮帮我吗?我会非常感谢任何可以帮助我的人。

我想从 Word 文档宏访问 Excel 打开的工作簿的数据。由于某些原因,我需要从已在我的用户 session 中打开的 Excel 工作簿中获取数据,而不是使用其路径在后台重新打开它。

这是我要转换的当前宏位,以便我使用已经打开的“GUI.xls”。窗口名称为“Microsoft Excel – GUI.xls [兼容模式]”
我希望我能很好地解释我的问题,我没有在其他地方找到这个话题,抱歉,如果它已经存在。

如果可能的话,我希望 AppExcel 对象直接链接到打开的工作簿。问题是我尝试从 Word 访问工作簿。

非常感谢您的帮助,

西蒙

Set AppExcel = CreateObject("Excel.Application")
AppExcel.Workbooks.Open SourcePath1 & "" & "\GUI.xls"

Data_Name = AppExcel.Worksheets("Output").Cells(RowNum, 2).value
Data_Ending = AppExcel.Worksheets("Output").Cells(RowNum, 3).value

Dim WordFileName As String
WordFileName = Data_Name & Data_Ending

Call candp(SourcePath, WordFileName, TargetName)

AppExcel.Activeworkbook.Close savechanges:=False
AppExcel.Quit
Set AppExcel = Nothing

最佳答案

尝试使用 GetObject :

Dim WordFileName As String
Dim exWb As Object
Dim AppExcel As Object

'try to get file if it's already open
On Error Resume Next
Set exWb = GetObject(SourcePath1 & "\GUI.xls")
On Error GoTo 0

'if it's not already opened - open it
If exWb Is Nothing Then
Set AppExcel = CreateObject("Excel.Application")
Set exWb = AppExcel.Workbooks.Open(SourcePath1 & "\GUI.xls")
End If

With exWb.Worksheets("Output")
Data_Name = .Cells(RowNum, 2).Value
Data_Ending = .Cells(RowNum, 3).Value
End With

WordFileName = Data_Name & Data_Ending

Call candp(SourcePath, WordFileName, TargetName)

exWb.Close savechanges:=False
Set exWb = Nothing

If Not AppExcel Is Nothing Then AppExcel.Quit
Set AppExcel = Nothing

关于vba - 如何使用 Word 宏从已打开的 Excel 工作簿中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22150619/

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