online 1
gast (50)

/ Forum / Skripte(PHP,ASP,Perl...)

Skripte(PHP,ASP,Perl...)Skripte(PHP,ASP,Perl...)

Fragevon snailhouse vom 12.11.2019, 19:37 Options

Lösung

Excel VBA: Datei als Workbook definieren

Hallo zusammen,

ich habe folgenden Code (auszug) erstellt, der auch funktioniert


Do While strDatei <> ""                     ' BEGINN Schleife zum Durchforsten der Dateien im Verzeichnis
       
        lDatensatzzaehler = lDatensatzzaehler + 1
       
         Workbooks.Open (strVerzeichnis & strDatei)
   
         Set oWBExterneDatei = ActiveWorkbook     ' gibts eine BESSERE MÖGLICHKEIT ???????????????

         strDatei = Dir()
         oWBExterneDatei.Close
    Loop                                        ' ENDE Schleife zum Durchforsten der Dateien im Verzeichnis


Allerdings gefällt mir der Teil
[zitat]
Set oWBExterneDatei = ActiveWorkbook
[/zitat]

nicht, weil hier (falls der Benutzer in eine andere Datei klickt) die falsche Datei als "oWBExterneDatei " definiert wird.

Wie löse ich das Problem eleganter?

Im voraus vielen Dank für Eure Hilfe !

Gruß
Jürgen


Antwort schreiben

Antwort 1 von Marie vom 12.11.2019, 20:14 Options

Set oWBExterneDatei = ActiveWorkbook
strDatei = Dir()
oWBExterneDatei.Close

das verstehe ich eh nicht?? Was tut das Teil??

gruß Marie

Antwort 2 von snailhouse vom 12.11.2019, 23:21 Options

Hallo Marie,

leider hat mir das noch nicht weitergeholfen (ich sehen den Unterschied zu meinem Text nicht..).

Das Makro öffnenet nach-und-nach verschiedene Messtabellen und extrahiert daraus einzelne Messwerte, die dann in einer Datei zum Auswerten zusammengeführt werden.

Der Code oben funktioniert zwar so, aber wenn der Benutzer während das Makro läuft in eine andere Datei klickt, dann wir doch diese Datei fälschlicherweise als "ActiveWorkbook" verwendet....

Set oWBExterneDatei = ActiveWorkbook

Gruß Jürgen

Antwort 3 von Marie vom 12.11.2019, 23:32 Options

da ist kein Unterschied, ich habe dich Gefragt was die drei zeilen bewirken. Warum schreibst Du überhaupt

Set oWBExterneDatei = ActiveWorkbook
lies doch den Namen des aktiven Workbooks aus bevor jemand woanders hinklicken kann.

ActiveWorkbook.Name

Antwort 4 von snailhouse vom 13.11.2019, 00:19 Options

Hallo,

nun, ich definiere mir erst zwei workbooks, einmal für die Datei in die die Dateien eingelesen werden
dim oWBDaten as WorkBook
Set oWBDaten = ThisWorkbook

und einmal für die Datei(en) aus denen die Daten ausgelesen werden.
dim oWBExterneDatei as WorkBook

In der While-Schleife werden nach und nach die Dateien in dem Verzeichnis ausgelesen (nächste folgt jeweils bei
strDatei = Dir()
.)
Mit
oWBExterneDatei.Close

schließe ich die aktuell geöffnete Datei.

Dieses Workbook wird mit jeder neu geöffneten Datei neu zugeordnet
Set oWBExterneDatei = ...


Was ich nun suche, ist eine Lösung, wie ich dieser Datei (von der ich Verzeichnis und Dateiname kenne (strVerzeichnis & strDatei) eindeutig das Workbook oWBExterneDatei zuweisen kann, ohne es über ActiveWorkbook zu lösen.

Das Makro liest sehr viele Dateien ein und da kann es evtl. doch passieren, dass während das Makro läuft in eine andere Datei geklickt wird und diese dann als ActiveWorkbook erkannt wird.

Antwort 5 von Marie vom 13.11.2019, 01:33 OptionsLösung

Lösung
Hm ich kenne mich in Excel nicht wirklich aus, aber ich denke doch, dass es das sein müsste, was Du suchst?

Workbooks.Open (strVerzeichnis & strDatei)

Set oWBExterneDatei = GetObject(strVerzeichnis & strDatei)


oWBExterneDatei.Close

Gruß Marie

Antwort 6 von snailhouse vom 13.11.2019, 21:09 Options

Hallo Marie,

vielen Dank, so hat es funktioniert!

Gruß
Jürgen

Ähnliche Themen

Excel VBA startet bestimmte mpg-datei im Media Player
jenkdat  07.11.2007 - 110 Hits - 2 Antworten

Excel Bereiche Definieren für Export nach Outlook
-habichnet-  15.02.2008 - 36 Hits - 10 Antworten

Schnellreferenz Excel VBA
Joshuan  23.05.2008 - 219 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026