|
ユーザーフォームのコマンドボタンを押すと
非アクティブなシートにデータを書き込むように
していますが、(メインのデータを書き込むシートがアクティブになっている)
With Worksheets("Sheet2")
.Range("A65536").End(xlUp).Offset(1, 0)=・・・・・・
.・・・・・・・
End With
と非アクティブなシートに書き込んだ後に、フリガナでソートをしておりますが、
ソートのコードがマクロの記録で生成されたものを使っているので、
Worksheets("Sheet2").Range("F2", Range("J65536").End(xlUp)).Select
(上のセル範囲指定のコードは自分で変更してます。)
Selection.Sort Key1:=Range("H2"), Order1:=xlAscending, Key2:=Range("J2") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:= _
xlSortNormal, DataOption2:=xlSortNormal
(Key2 は1234などの数字です。)
ソートする為にそのシートを選択しなければならず、
Application.ScreenUpdating = False
Application.ScreenUpdating = True でソートする間と、元のシートに
戻るまで、画面の更新を停止しております。
このようなことをせずに、非アクティブなシートをソートする方法は
あるのでしょうか?別なシートをアクティブにして、処理をして、また元のシートに戻るというのは、どうにも無駄な動作のように思われるので、アドバイスを
宜しくお願い致します。
|
|