スマート駄目リーマンの忘備録

旅行記、キャリア論、世相分析など思ったことを書き連ねます

別シートのボタンによるマクロ起動エラー対処法


Sheet3のデータをB列をキーにしてソートするプログラム(Sheet1のボタンで起動する)

おそらく通常ですとコンパイルエラーが発生すると思います。
一部の関数(下記では.sortによるキーソート)では、シートをアクティブな状態にしないとプログラムが走りません。
このような時は下記のようにWorksheets("Sheet3").Activateで対象シートをアクティブな状態にしてから、関数を走らせるとコンパイルエラーを回避出来ます。

Sub 並べ替え()

Worksheets("Sheet3").Activate

Sheets("Sheet3").Range(Range("B2"), Range("C" & Cells.Rows.Count)).Sort Range("A1")

End Sub