ここにシナリオがあります。私は、複数のExcelワークブックで、データをコピーしてお互いに貼り付けることができます。したがって、マクロはあるブックから.copy.closeを開き、open.paste.closeを別のブックに開きます。私は、ファイルが閉じられたときにマクロを自動的に実行する関数を作成しています。アクティブなブックでのみ自動クローズを実行するようにVBAコードを作成するにはどうすればよいですか?
問題があります。ブック1のマクロボタンをクリックすると、ブック2からopen.copy.closeを実行することになっています。ただし、ブック2のファイルが閉じられたときに自動実行されるため、エラーが発生します(2つのマクロは同時に実行できません)これに対する解決策はありますか?私は、ファイルが閉じられているときに自動実行マクロだけを解決するソリューションを探していますが、それはアクティブワークブックです。ここで私は今持っているものです。
Workbook 1
Sub workbook_beforeclose(cancel As Boolean)
Application.Run "Sheet1.UpdateYellowTabs_Click"
End Sub
Workbook 2
Sub Workbook_BeforeClose(Cancel As Boolean)
Workbook.BeforeClose
Application.Run "Sheet12.UpdateGreen_Click"
End Sub
どのように私はそれがアクティブなとき、この実行のみ/人間のユーザとしない場合は、マクロによってオープン/クローズによって閉じ作るだけに、ブックのコードでそれをコーディングしますか?
ありがとうございます!
こんにちは、私はあなたのコードを試して、それは本質的に何をしたいですか。しかし、それは動作していません。私はルーチン 'workbook_beforeclose'に、それを含むブックが「アクティブブック」である場合にのみ実行するようにしました。ワークブックをアクティブ化または非アクティブ化して、マクロがどのマクロを認識できるようにする必要がありますか? – Carmen
@Carmenは、 'wb1'のコードで' wb2'を終了する場合、 'wb1'をアクティブにすることで、' wb2'を閉じる前にそれを非アクティブにする方法を見つけ出すという考え方です。 'wb1.Activate:wb2.close'のようなものです。 –
私はそれの技術的な部分を理解して以来、それを実験してきました。 wb1とwb2を別々に起動し、 'wb1.activate:wb2.close'を挿入しましたが、まだ動作していません。ブックコードまたはモジュール/ワークシートにコードを追加しますか? 'サブWorkbook_BeforeClose(ブール値としてキャンセル) ないApplication.ActiveWorkbookは私が次にサブ Application.Run「Sheet12.UpdateGreen_Click」私は私がする必要があり、各ワークブックに定義された後も、これでエラーが発生します 終了Sub'を終了している場合は活性化および非活性化。 – Carmen