引用:
プログラムの中で並べ替えを行いたいのですが、
.Sort.SetRange .Range("A1:A2570") → .Sort.SetRange .Range("A1:gyo")のように表したいのですが、
SetRange は、並べ替えの範囲を指定します。
これを、 A1:A〜 の様に、A1〜A列の最終行までを指定し
引用:
.Sort.SortFields.Add Key:=.Range("CD1"), Order:=xlDescending
の様に、並べ替えのキーを、CD列にした場合、並べ替え範囲の中に、CD列が入っていない為
Apply でエラーになります。
あくまで、CD列をキーにしたいなら、SetRange は
.Sort.SetRange .Range("A1:CD" & gyo)
の様にする必要があります。
上記とは別に
A1セル にカーソルを置いた状態で、Ctrl + Shift + End で 選択される範囲に対し
Sort を行って良いのであれば 最終行を取得する必要はなく
With ActiveSheet
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=.Range("CD1"), Order:=xlDescending
.Sort.SetRange .UsedRange
.Sort.Header = xlYes
.Sort.Apply
End With
で済みます。 参考までに。