2017-10-09 1 views
0

Kann eine offene Arbeitsmappe in eine andere Excel-Instanz übertragen werden? I.e. eine offene Arbeitsmappe "erziehen", ohne sie zu schließen und wieder zu öffnen?Offene Arbeitsmappe von einer Excel-Instanz in eine andere übertragen

Der Grund, warum ich dies tun möchte, ist eine separate Instanz für eine bestimmte Arbeitsmappe zu haben. Wenn diese Arbeitsmappe geöffnet wird, kann sie eine neue Instanz von Excel erstellen, und dann hoffe ich, diese Arbeitsmappe der anderen Workbook-Sammlung der Anwendungen hinzuzufügen und sie gleichzeitig aus dem Original zu entfernen.

Der Punkt von diesem ist, damit ich eine modale Formularanwendung ausführen kann, während ich noch die Fähigkeit behalte, Excel zu verwenden. Ich möchte beispielsweise Daten programmatisch in die Zwischenablage kopieren, während der Benutzer sie in eine andere Arbeitsmappe einfügen kann.

Herstellung der Urformen Anwendung nicht-modal ist keine Lösung, da dies eine Voraussetzung ist (wir haben gegangen Längen erarbeiten aus den Arbeitsblättern regelmäßige Nutzer zu halten und nur die Formulare mit einem Passwort schließen.)

Für den Kontext habe ich versucht, die andere Instanz mit der gleichen Arbeitsmappe zu öffnen und dann zu schließen, aber dies hat Probleme mit der neu geöffneten Arbeitsmappe, die schreibgeschützt ist. (Es gibt auch andere Gründe, warum das nicht gut funktioniert.)

Antwort

0

Wie der folgende Code veranschaulicht, können Sie auf eine Arbeitsmappe in einer anderen Instanz von Excel zugreifen und es bearbeiten.

Dim xlApp As Excel.Application 
Dim Wb As Workbook 
Dim xlApp2 As Excel.Application 
Dim Wb2 As Workbook 

Set Wb = ActiveWorkbook 
Set xlApp = Wb.Parent 

Set xlApp2 = New Excel.Application 
Set Wb2 = xlApp2.Workbooks.Open("E:\My Documents\Weekly Report.xlsx") 

Wb.Worksheets("Target").Cells(1, 1).Value = Wb2.Worksheets(1).Cells(4, 1).Value 
Verwandte Themen