2014-03-03 98 views
0

我目前正在努力與vba宏,你能幫我嗎?我會非常感謝任何能夠幫助我的人。如何使用Word宏從已打開的Excel工作簿中獲取數據?

我想從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

的UPS,我沒有在郵件的開頭寫您好研究員,但它不會出現。所以「你好」再次:) – Eure4

+0

這是由設計,請參閱http://meta.stackexchange.com/a/93989/244283的信息。 –

回答

1

嘗試使用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 
+0

非常感謝Simoco,你解決了我的問題! – Eure4

相關問題