ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

ExcelVBAで、他のシートをSortしようとするとエラーになる場合

2011-12-02 13:28:40 | Officeソフト&VBA
 Excel VBAで、
   そのシートが開いていない状態で、
   ソートを行いたいとき

 マクロで書き出すものは、Selectを使っている。

 そこで、selectの代わりに、シート名とレンジを指定して書くと、
 「並び替えの参照が~」または、「結合セル~」のエラーになり、

 そのシートをActivateしようとすると、
 「Range クラスの Select メソッドが失敗しました」

となる場合。




後者については、ここでActiveしても、Selectが出来ないみたい。

じゃあ、どうやるか・・・だけど・・・

例えば今、「マスター」シートにあるボタンから起動して、
「作業用」シートをソートしたいとすると

(1)「作業用」シートのマクロに、ソートするマクロを書く

Public Sub narabikae()
Range("A3:J54").Sort Key1:=Range("A3"), Order1:=xlAscending, Key2:=Range("C3") _
, Order2:=xlDescending, Header:=xlNo, OrderCustom:=1, MatchCase:=False _
, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:= _
xlSortNormal, DataOption2:=xlSortNormal
End Sub

みたいなかんじ。

(2)呼び出し側の「マスター」シートのマクロで、(1)を呼び出す

Call Sheets("作業用").narabikae


そうすると、できるみたいよ・・・


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする