2013-11-21 5 views
2

У меня есть проблема со следующим кодом VBA:первенствует-Range.Offset Ошибка VBA

Set timeRange = ActiveSheet.Cells.Find("DATE", MatchCase:=True) 'Cerca TIME column 
If timeRange Is Nothing Or Empty Then GoTo errorOpenColumn 
timcol = timeRange.Column 
Columns(timcol).Select 
Selection.NumberFormat = "yyyymmdd" 
Selection.Copy 
'Workbooks(Mainbook).Activate 
'Worksheets("Office_Data_Table").Select 
Workbooks(Mainbook).Activate 
Worksheets("Office_Data_Table").Activate 
Range("A:A").Offset(6, 0).PasteSpecial 'Error aqui 
Windows(Sourcebook).Activate 

В то время он выполняет это даст ошибку в строке Range("A:A").Offset(6, 0).PasteSpecial, но не выдаст ошибку (Нет действительная запись. Заявка будет закрыта); но если я применил Offset(0,6), он будет работать.

Очевидно, моя проблема в том, что я хочу применить Offset (6,0), а не другой :-).

Любая помощь очень ценится.

+0

[ИНТЕРЕСНО ЧИТАТЬ] (http://stackoverflow.com/questions/10714251/excel-macro-avoiding-using-select) –

ответ

2

Range("A:A") выбирает всю колонку - и OFFSET(6,0) пытается компенсировать весь столбец вниз - что невозможно, поскольку оно уже полностью выбрано! Вместо этого вы можете напрямую использовать Range("A1"). Offset(6,0) или Range("A7").

+1

Ударьте меня в: D –

Смежные вопросы