2013-11-21 82 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 –