Ich versuche, die Namen aller derzeit geöffneten Arbeitsmappen zu erhalten. Ich habe derzeitWie werden alle Arbeitsmappen in Excel in verschiedenen Instanzen angezeigt?
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
Es ist nicht in der Lage, die andere Arbeitsmappe abzuholen, die in der Schleife geöffnet ist. Es wird nur einmal durchlaufen, was das Vergleichen der aktuellen Arbeitsmappe mit sich selbst ist, was nichts bewirkt. Dies liegt wahrscheinlich daran, dass ich Code hatte, der Daten von einer Software abruft, herunterlädt und diese Excel-Datei öffnet. Ich vermute, dass diese Datei eine andere Instanz von Excel ist, wenn sie heruntergeladen und geöffnet wird, da ich sie deutlich auf meinem Bildschirm sehe.
verwirren Sie Arbeitsblatt mit Arbeitsmappe? – jsotola
Verschiedene Instanzen sprechen nicht miteinander, zumindest nicht auf dem "normalen" Weg (jedenfalls nicht für Normalsterbliche zugänglich). "Anwendung" bezieht sich auf die Instanz, auf der der Code gerade ausgeführt wird. Die beiden Instanzen müssen Prozessgrenzen durchlaufen, um miteinander "zu reden". Keine kleine Aufgabe, die du hier stellst. Oder wird die heruntergeladene Arbeitsmappe einfach im "geschützten Modus" in derselben Instanz geöffnet? –
Welche Version von Excel? –