2014-02-05 4 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

Там нет необходимости использовать .Activate (INTERESTING READ) ИЛИ .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 
Смежные вопросы