2016-04-22 56 views
0

美好的一天。將工作簿中的單元格複製到「下標超出範圍」的工作簿結果

我正在嘗試編寫一個代碼,它將從「A-M」和(向下)直到最後一次使用的行基本上選擇單元格(從左到右)。
然後,一旦選定,我將它們複製到另一個工作簿。

這是我嘗試使用代碼:

ActiveWorkbook.Worksheets("Sheet1").Range("A1:M" & LastRow).Copy _ 
    Workbooks("Converter.xlsm").Worksheets("Sheet1").Range("A1").CurrentRegion 

一切都在代碼別的辦法,除了這條線。
而結果是這樣的:

Run-time error '9': 

Subscript out of range 

感謝。

PS。我使用的「LastRow」變量,我只是將它從一個教程中拉出來。這不是一個個人用戶定義的變量,所以我不確定這是否來自VBA的文檔。

+1

嘗試帶走'.CurrentRegion'爲目標單元格 – Rosetta

回答

0

你提到你沒有計算LastRow。

  1. 始終將Option Explicit置於模塊頂部。它迫使你聲明你的變量,並且會幫助你識別你從另一個編碼器得到的東西是否是「內置的」。關於確定範圍中的最後一行,請參閱this post
  2. 從這個職位,你應該有一個計算,如您的代碼行之前,下面...

    LastRow = Sheets("Sheet1").Range("A" & Sheets("Sheet1").Rows.Count).End(xlUp).Row 
    
+0

啊......我明白了。所以,'Option Explicit'將會是一個自動輔助。謝謝。但我必須問,但。什麼是'xlUp'? – TheBSITGuy

+0

xlUp是一個常量,內置了Excel的VBA功能。 – OldUgly

+0

非常感謝。 :) – TheBSITGuy

0

請關閉所有的工作簿,然後重新打開,然後用試試下面的代碼

Sub test() 
    Dim lastrow As Long 
    lastrow = Range("A" & Rows.Count).End(xlUp).Row 
    ActiveWorkbook.Worksheets("Sheet1").Range("A1:M" & lastrow).Copy Workbooks("Converter.xlsm").Worksheets("Sheet1").Range("A1") 
End Sub 
相關問題