2016-04-07 7 views
1

SQL Serverからレコードを選択し、別のブックへの参照を選択しないでマクロを実行すると、他の開いているブックの1つがランダムにアクティブになります。
マクロはbook1にあり、book1からマクロを実行します。
最後に、book2(またはbook3など)が有効になります。なぜ ?!
私は、ちょうどEnd Subの前アクティブなブックは、マクロ実行後にランダムに変更されます

Dim Wb As Workbook 
Set Wb = Active/ThisWorkbook 
Wb.Activate 

または

msgbox "ok" 

を置くが、それでもこのことは、すべての時間に発生していない他の開いているブック(メッセージボックスがBOOK2にポップアップ)
に飛ぶことを試みましたちょうど時々、ランダムに。 ありがとうございました

更新:book2の中に奇妙な言い回しを修正したので、やめてしまいそうです。

+0

は、新しいブックに結果を入れてマクロですか? –

+0

'Debug.Print Wb.Name'は何を返しますか? – newguy

+0

Application.Activeworkbookで時計を試してみましたが、これが動作するかどうかわからない変更を壊しましたか、まったくテストできませんでした。 –

答えて

2

See Difference Between ActiveWorkbook and ThisWorkbook

Sub Bus() 
Dim Wb As Workbook 
Set Wb = ActiveWorkbook 
Debug.Print Wb.Name 

Set Wb = ThisWorkbook 
Debug.Print Wb.Name 


End Sub 

あなたはブック2のコードの上に置く場合。モジュール1と選択BOOK1とそれに

を実行しますが、イミディエイトウィンドウで、次の出力を取得します:

Book1 
Book2 

enter image description here

+0

私は活字帳や本書とは無関係にbook1を手に入れます。 – user2284877

+0

可能であれば、セットアップとフルコードのスクリーンショットを投稿できますか? – newguy

関連する問題