0
現在開いているすべてのブックの名前を取得しようとしています。私は現在持っていますExcelですべてのブックを別のインスタンスで表示するにはどうすればよいですか?
Dim wb1 As Workbook
Set wb1 = ThisWorkbook 'wb where macro is
wb1_name = wb1.Name
For Each WB In Application.Workbooks
wb2_name = WB.Name
If wb2_name <> wb1_name Then
WB.Activate
Range("H1").Value = "hello"
End If
Next WB
End Sub
ループ内で開いている他のブックを受け取ることができません。それは現在のワークブックを自分自身と比較することで、何もしません。これはおそらく、ソフトウェアからデータを取得し、ダウンロードし、そのExcelファイルを開くコードを持っていたためです。私は、このファイルが私の画面上にはっきりと見えるので、Excelがダウンロードされて開かれたときにExcelの別のインスタンスだと思う。
ワークブックとワークシートを混同していますか? – jsotola
異なるインスタンスは、少なくとも「通常の」方法ではなく(単なる人間にとってはアクセス可能ではない)、お互いには話しません。 'Application'はあなたのコードを現在実行しているインスタンスを指します。 2つのインスタンスは、相互に「話す」ために交差するプロセス境界を持っています。あなたがここで求めている小さな仕事はありません。または、ダウンロードされたワークブックは、同じインスタンス内の「保護モード」で単に開いていますか? –
どのバージョンのExcelですか? –