2014-02-05 98 views
2

請協助處理下面的代碼,當我嘗試運行代碼時,它會給出「下標超出範圍」的錯誤「當我調試時,它會突出顯示下面的部分。excel中的下標超出範圍

Workbooks.Open Filename:=Path & Filename 
Columns("A:AI").Copy 
Windows("RealTime-APR").Activate 
Sheets("Raw").Select 
ActiveCell.PasteSpecial (xlPasteValues) 
+0

1)檢查您是否真的有名稱的工作簿「RealTime-APR」已打開,2)如果是,請檢查您的工作簿「RealTime-APR」是否包含名爲「Raw」的工作表 –

回答

0

試試這個代碼:

Dim wbTarget as Workbook 
ThisWorkbook.Columns("A:AI").Copy 
Workbooks.Open Filename:=Path & Filename 
Set wbTarget = Workbooks(Workbooks.Count) 
wbTarget.Activate 
wbTarget.Sheets("Raw").Activate 
wbTarget.Sheets("Raw").Range("YourTargetColumn e.g. A:A here").PasteSpecial xlPasteValues 

另外,使用With statement:

ThisWorkbook.Columns("A:AI").Copy 
Workbooks.Open Filename:=Path & Filename 
With Workbooks(Workbooks.Count) 
    .Activate 
    .Sheets("Raw").Activate 
    .Sheets("Raw").Range("YourTargetColumn e.g. A:A here").PasteSpecial xlPasteValues 
End With 
2

有沒有必要使用.ActivateINTERESTING READ)OR .Copy/.PasteSpecial xlPasteValues

試試這個

我假設你已經申報並設置Path & Filename

Dim thisWb As Workbook, newWB As Workbook 
Dim thisWs As Worksheet, newWs As Worksheet 

Set thisWb = ThisWorkbook 
Set thisWs = thisWb.Sheets("Sheet1") 

Set newWB = Workbooks.Open(Path & Filename) 
Set newWs = newWB.Sheets("RAW") 

newWs.Columns("A:AI").Value = thisWs.Columns("A:AI").Value