68023
Sep 01, 2008, updated at Sep 04, 2008 (UTC)
5440
7
0
Tabelle in andere Arbeitsmappe kopieren
Hallo,
ich benötige bei folgendem Problem Hilfestellung:
Mein Skript durchläuft eine Liste mit Dateinamen (datei), sucht sich daran ein spezielles Blatt (land) und soll diese nun in eine Sammel-Datei (hier) kopieren.
Beim Kopieren muss ich irgendwas durcheinander gebracht haben, denn nicht der Inhalt der geöffneten Datei sondern der Inhalt der Sammel-Datei wird kopiert:
Ich krieg die Peilung nicht ;)
Bestimmt ist der Fehler ganz offensichtlich. Bin für einen Wink dankbar!
Das fertige Skript ist denke ich sehr nützlich, werde daraus eine Anleitung schmieden!
Gruß
Nico
ich benötige bei folgendem Problem Hilfestellung:
Mein Skript durchläuft eine Liste mit Dateinamen (datei), sucht sich daran ein spezielles Blatt (land) und soll diese nun in eine Sammel-Datei (hier) kopieren.
Beim Kopieren muss ich irgendwas durcheinander gebracht haben, denn nicht der Inhalt der geöffneten Datei sondern der Inhalt der Sammel-Datei wird kopiert:
Workbooks(datei).Activate
Sheets(land).Activate
Range("A1:Z176").Copy
Workbooks(hier).Activate
Sheets(land).Activate
ActiveSheet.Paste
Workbooks(datei).Activate
ActiveWorkbook.Close
Ich krieg die Peilung nicht ;)
Bestimmt ist der Fehler ganz offensichtlich. Bin für einen Wink dankbar!
Das fertige Skript ist denke ich sehr nützlich, werde daraus eine Anleitung schmieden!
Gruß
Nico
Please also mark the comments that contributed to the solution of the article
Content-Key: 95822
Url: https://administrator.de/contentid/95822
Printed on: April 23, 2024 at 05:04 o'clock
7 Comments
Latest comment
Hallo prinzipal87!
Du kannst zwar den Code etwas kompakter gestalten, zB
aber bei mir funktioniert auch schon Deine Version - so gesehen könnte es eigentlich nur am Variablenínhalt von "datei" oder "land" liegen ...
Grüße
bastla
Du kannst zwar den Code etwas kompakter gestalten, zB
Workbooks(datei).Sheets(land).Range("A1:Z176").Copy
Workbooks(hier).Sheets(land).Activate
ActiveSheet.Paste
Application.CutCopyMode = False
Workbooks(datei).Close
Grüße
bastla
Hallo prinzipal87!
Noch als Anmerkung zu der Zerlegung in den Zeilen 23 - 31:
Etwas eleganter wird es mit InStrRev()
oder mit Split()
Beide Beispiele berücksichtigen keinen ":", da die Zerlegung ohnehin vom Ende her erfolgt und eine Pfadangabe der Art "D:Datei.xls" (also ohne enthaltenen "\") zwar erlaubt und möglich, aber hier nicht zu erwarten ist.
Schließlich gäbe es noch bei Verwendung des "FileSystemObject" die Methoden ".GetBaseName" und ".GetExtensionName" (erstere liefert nur den Namen, ohne Pfad und Typ, letztere nur den Dateityp) oder einfach nur ".GetFileName".
Grüße
bastla
Noch als Anmerkung zu der Zerlegung in den Zeilen 23 - 31:
Etwas eleganter wird es mit InStrRev()
z = InStrRev(mname, "\")
If z > 0 Then mname = Mid(mname, z + 1)
temp = Split(mname, "\")
mname = temp(UBound(temp))
Schließlich gäbe es noch bei Verwendung des "FileSystemObject" die Methoden ".GetBaseName" und ".GetExtensionName" (erstere liefert nur den Namen, ohne Pfad und Typ, letztere nur den Dateityp) oder einfach nur ".GetFileName".
Grüße
bastla