2017-08-18 123 views
0

我試圖記錄一個將一個工作簿的值粘貼到另一個工作簿的宏,但是當我這樣做時,出現「運行時錯誤9下標超出範圍」將一個Excel工作簿中的值複製並粘貼到另一個

我相信這只是一個簡單的修復,我是宏的新手,所以任何幫助,將不勝感激。這裏是我的代碼:

`Sub Refresh() 
' 
' Refresh Macro 
' Update XY Act. Values 2017 
' 
' Keyboard Shortcut: Ctrl+r 
' 
Windows("XY Update File v2.xlsx").Activate 
Selection.Copy 
Windows("Engineering XY Chart v2.xlsx").Activate 
ActiveSheet.Paste 
End Sub 
+0

有很多事情需要做,以使這種可行的,有很多問題,你有什麼具體的嘗試。最好的辦法是Google,「從一個工作簿到另一個工作簿複製範圍」找到一些代碼(並且存在很多),然後嘗試修改它,並在不工作時返回你正在努力完成的更具體的事情。 –

+0

一旦找到適合您的答案,請點擊該答案旁邊的勾號以接受答案。這讓問題的其他人知道哪個解決方案適合您。 – Adi219

+0

這兩個工作簿當時是否打開,並且在Excel的相同實例中? – YowE3K

回答

1

它通常更好的做法遠離激活和選擇。

'variables 
Dim workbook1 As Workbookm, workbook2 As Workbook, filePath1 As String 

filePath1 = ThisWorkbook.Path & "\Engineering XY Chart v2.xlsx" 'assuming filepath is the same as macro workbook 
filePath2 = ThisWorkbook.Path & "\XY Update File v2.xlsx" 'assuming filepath is the same as macro workbook 

'make references to workbooks 
Set workbook1 = Workbook.Open(Filename:=filePath1) 
Set workbook2 = Workbook.Open(Filename:=filePath2) 

'Copies cell A1 from sheet1 of workbook 2 to cell A1 sheet 1 of workbook 1 
workbook1.Sheets(1).Range("A1").Value = workbook2.Sheets(1).Range("A1").Value 
相關問題