2017-07-31 69 views
0

當我們有一個基本的VLOOKUP的相關信息2個不同的文件:Excel宏自動複製粘貼打開文件

Source file is: JP2-CSV CRAWLER 
Destination file is: JP2-CATEGORIES 

我們正在嘗試一個完整的列從源文件會自動複製到目標文件的第一列這是我們的代碼(它應該工作打開它或使用它時)

Sub Copysubcat() 
Dim wbSource As Workbook 
Dim wbDestination As Workbook 

Set wbSource = Workbooks.Open(_ 
    Filename:="C:\Users\user\Desktop\crawler file\JP2-CSV CRAWLER.xlsx") 

Set wbDestination = Workbooks("C:\Users\user\Desktop\crawler file\JP2-CATEGORIES.xlsx") 

wbSource.Sheets("CSV Crawler").Range("P2:P10000").Copy 

wbDestination.Sheets("Cats & Subcats").Range("A2:A10000").PasteSpecial (xlPasteValues) 

Application.CutCopyMode = False 

ActiveWorkbook.Save 
End Sub 

我們有錯誤「下標越界」

有人可以幫忙嗎?

+0

如果您告訴我們,在這行你得到這個錯誤 –

+0

嘗試'wbDestination.Sheets(「貓與Subcats」),它可以幫助。範圍(」 A2「)。PasteSpecial xlPasteValues' – Ibo

+0

這是行:Set wbDestination = Workbooks(」C:\ Users \ user \ Desktop \ crawler file \ JP2-CATEGORIES.xlsx「) –

回答

1

Workbooks不是一種方法,所以它不能接受任何參數。這是類,它表示工作簿,其中包含處理它們的方法。其中之一是Open,在這種情況下您將需要。所以,你需要這個開關:

Set wbDestination = Workbooks("C:\Users\user\Desktop\crawler file\JP2-CATEGORIES.xlsx") 

這樣:

Set wbDestination = Workbooks.Open("C:\Users\user\Desktop\crawler file\JP2-CATEGORIES.xlsx") 

此外,還有一個事件,如打開工作簿,您可以將您有正確的碼,所以宏將每次舉辦此活動時(即每次開放)都會運行。如果您在Excel中使用標準VBA開發環境,請在右側(在樹狀圖中)點擊This_workbook,您將不得不在頂部的下拉列表中,在左邊的一個選擇Workbook,在另一個選擇Open(此是事件清單,即由Workbook提出)。然後,內部產生方法的地方您選擇的代碼:)

enter image description here

+0

很好的解釋,嘗試也爲每個場景添加正確的語法 –

+0

謝謝米哈爾,我找不到活動,你有任何截圖可用。 –

+0

我附上了一張照片。我在我的系統上設置了波蘭語,所以不要擔心名字。選擇一個相同的圖標:) –