2013-03-26 102 views
3

我試圖運行在Excel宏在用戶選擇要打開的文件和宏將工作簿複製範圍並將其粘貼到用戶指定的細胞在原始工作簿中。我的代碼嘗試如下所示。我有「wbThis」作爲原始工作簿粘貼到與「wbTarget」作爲正在被打開,並從複製的工作簿。當我運行代碼時,我可以選擇要打開的文件,但會出現「需要對象」的錯誤,並且不會進一步進行復制和粘貼。打開用戶指定的Excel工作簿和範圍的數據複製到另一個工作簿

是否有使用Workbook.Open而不是Application.GetOpenFilename但仍然有用戶可以選擇要打開的文件的方法嗎?

謝謝你的幫助。

Dim wbTarget As Workbook 
Dim wbThis As Workbook 

Set wbThis = ActiveWorkbook 
Set wbTarget = Application.GetOpenFilename(FileFilter:="Excel workbook (*.xls),*.xls", Title:="Open data") 

wbThis.Activate 
Set rDest = Application.InputBox(Prompt:="Please select the Cell to paste to", Title:="Paste to", Type:=8) 
On Error GoTo 0 
wbTarget.Activate 
Application.CutCopyMode = False 
wbTarget.Range("A1").Select 
wbTarget.Range("B6:B121").Copy 
wbThis.Activate 
rDest.PasteSpecial (xlPasteValues) 
Application.CutCopyMode = False 

wbTarget.Close False 

回答

3

GetOpenFileName並沒有真正打開一個文件,只是得到它的名字。 嘗試做Application.Workbooks.Open(TheResultOfGetOpenFileName)

dim FileName as string 
FileName = Application.GetOpenFilename(FileFilter:="Excel workbook (*.xls),*.xls", Title:="Open data") 

Set wbTarget = Application.Workbooks.Open(FileName) 
+0

非常感謝您的幫助!爲了正常工作,我必須在代碼中更改一個其他的東西,我在下面顯示了它。 '範圍( 「A1」)選擇 範圍。( 「B6:B121」)Copy' – user2033485 2013-03-26 17:21:10

相關問題