2013-11-21 81 views
2

我有以下VBA代碼的問題:Excel的VBA Range.Offset錯誤

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 –