- #1
L
Lungo
Neues Mitglied
Themenersteller
- Dabei seit
- 16.03.2005
- Beiträge
- 4
- Reaktionspunkte
- 0
Hallo,
ich habe folgendes Problem. Ich habe verschiedene xls-Dateien in einem Ordner und will aus all diesen Dateien den Dateinamen + den jeweiligen Sheetnamen auslesen und in eine Textdatei schreiben. Unter VBA hab ich dies bereits mit folgendem Code zum laufen gebracht:
Nun will ich diese VBA-Routine in eine VB-Routine umwandeln. Da es jedoch einige Unterschiede zwischen den beiden Sprachen gibt, komme ich hierbei an verschiedenen stellen nicht weiter.
Diese sind:
- Wie kann ich in VB den jeweiligen Dateinamen der Variablen Name zuweisen, ohne das der gesammte Pfad mit dranhängt? Und wie kann ich dabei die Schleife über alle Dateien die in dem Pfad hauptdir liegen laufen lassen? In VBA werden der Variablen Name ja nacheinander alle Dateien des Ordners mit dem Befehl Name=Dir zugewiesen.
Ich hoffe das ich mich nicht zu kompliziert ausgedrückt habe :-[.
ciao
Lungo
ich habe folgendes Problem. Ich habe verschiedene xls-Dateien in einem Ordner und will aus all diesen Dateien den Dateinamen + den jeweiligen Sheetnamen auslesen und in eine Textdatei schreiben. Unter VBA hab ich dies bereits mit folgendem Code zum laufen gebracht:
Code:
Sub Alle_Regelnamen(sLang As String, sInputPath As String, sOutputFilename As String)
->Dim sText As String
hauptdir = sInputPath
namedatei = sOutputFilename
Open namedatei For Output As #1
->Loop over all files in directory
Name = Dir(hauptdir + \*.xls)->Zuordnung der einzelnen xls-Dateien zu Name
Do While Name <>
->Debug.Print Name
Workbooks.Open Filename:=hauptdir + \ + Name-> Öffnen der unter Name eingelesenen xls-Datei
-> Loop over all sheets
nr = Sheets.Count->Zählen der einzelnen Arbeitsblätter
For i = 1 To nr
Sheets(i).Select-> Auswahl des jeweiligen Arbeitsblattes
-> Len Funktion gibt Länge der zu beachtenden Zeichen an
If Not Left(Sheets(i).Name, Len(Tabelle)) = Tabelle Then-> Standardtabellenblätter (Tabelle 1, Taabelle 2) werden nicht beachtet
Print #1, Left(Name, Len(Name) - 4) & . & Sheets(i).Name-> .xls wird an den Dateienden abgeschnitten; zu Schreibende Zeile besteht aus Dateiname.Arbeitsblatt
End If
Next i
ActiveWindow.Close SaveChanges:=False-> beim Schließen der Excel Datei soll nicht gespeichert werden
Name = Dir-> nächste Datei wird Name zugeordnet
Loop
Close #1-> Output Datei schließen
End Sub
Nun will ich diese VBA-Routine in eine VB-Routine umwandeln. Da es jedoch einige Unterschiede zwischen den beiden Sprachen gibt, komme ich hierbei an verschiedenen stellen nicht weiter.
Diese sind:
- Wie kann ich in VB den jeweiligen Dateinamen der Variablen Name zuweisen, ohne das der gesammte Pfad mit dranhängt? Und wie kann ich dabei die Schleife über alle Dateien die in dem Pfad hauptdir liegen laufen lassen? In VBA werden der Variablen Name ja nacheinander alle Dateien des Ordners mit dem Befehl Name=Dir zugewiesen.
Ich hoffe das ich mich nicht zu kompliziert ausgedrückt habe :-[.
ciao
Lungo