所以这就是我到目前为止所得到的:
Sub SortByGen()
Dim Gen As Range
For Each Gen In Worksheets("Sheet1").Range("B3:G3")
If Gen.Value = "XXX" Then
Gen.EntireColumn.Copy _
Worksheets("XXX").Range("A2").End(xlToRight).Offset(0, 1).EntireColumn
If Gen.Value = "YYY" Then
Gen.EntireColumn.Copy _
Worksheets("YYY").Range("A2").End(xlToRight).Offset(0, 1).EntireColumn
End If
Next Gen
End Sub
我正在尝试根据特定条件将某些列从一个工作表排序到多个工作表。我不小心把价值放在
上Worksheets("XXX").Range("B2") and Worksheets("YYY").Range("B2")
所以当
.end(xltoright)
跑了,代码工作了。现在,当我试图摆脱B2中的值时,代码将出错。
答案 0 :(得分:1)
如果您使用xlToRight
,并且您从该行中最后一个被占用的单元格开始,那么它将转到该行的最后:您不能从那里再偏移一列... < / p>
请改用:
Gen.EntireColumn.Copy _
Worksheets("XXX").Cells(2, Columns.Count).End(xlToLeft).Offset(0, 1).EntireColumn