我目前正在努力使用vba宏,你能帮我吗?我非常感谢能够帮助我的人。
我想从Word文档宏访问Excel打开的工作簿的数据。出于某些原因,我需要从已在我的用户会话中打开的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
答案 0 :(得分:3)
尝试使用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