|
▼ゆーあ さん:
「Sheet3をアクティブにして下さい」
このメッセージは、エクセルやVBAではなく、このマクロで出しています。
決して、プログラムを直してくださいというメッセージではないんです。
マクロ処理を開始する時点でのデータシート(Sheet3) で選ばれているセルの行
のデータを転記先シートに転記しますよね。
ですから、どこが選ばれているかを把握しなきゃいけないんですが、このセル
(ActiveCell) を参照しようとした場合、必ずこのシートがアクティブになっている
必要があります。
想定としては、データシートをゆーあさんがアクティブにして、目的の行を選んで
マクロ実行。
こう考えているんですが、このメッセージがでたということは、実行時には
別のシートがアクティブになっているということになります。
それとも、データシート(Sheet3) がアクティブな状態(前面にでている状態)で
このメッセージがでたあということでしょうか?
もしかして・・・・
ゆーあさんの操作手順として、
・データシート(Sheet3)のコピーすべき行のセルを選ぶ
・それから、別のシートを選んで、なにかする
・で、この状態で(別のシートが表示されている状態で)マクロ実行
・マクロは、前に、データシート上で選択してあったセルの行のデータをコピーする。
もし、こういった流れがいいのなら、SampleA,B,Cともに
'Just In Case
If Not ActiveSheet Is dSh Then
MsgBox dSh.Name & "をアクティブにしてから実行してください"
Exit Sub
End If
これを消して
Application.ScreenUpdating = False の下に
dSh.Select
を追加。
これでいけますけど・・・・
でも、自分だったら、ちゃんと、選んだ行を目で確認しながら実行しますけど。
さっき、ちゃんと正しい行を選んでいたかどうか、不安じゃないですか?
|
|