Hellihello SELF
Sub TextDateiErstellen()
Dim exportfile$, TB As Worksheet, z%, TMP$haben das "$" und das "%" eine Bedeutung?
Sind deprecated Typenklassen-shortcuts
As Worksheet bedeutet, dass TB ein Worksheet=Tabellenblatt ist (werden soll)?
yes
exportfile = "C:\test.txt"
Dateinummer = FreeFilegibt ein Dateihandle. Ich weiß zwar nicht wirklich, was das macht, ist aber so wohl.
Warum das "()" fehlt, ist mir immer noch unklar. Immerhin wird mit FreeFile ein Datenkanal freigegeben, der als Referenznummer auf die Datei gilt.
Set TB = ThisWorkbook.Worksheets(1)
nimm Worksheet Nummer 1
jo, wird wohl.
'Die folgende Zeile erzeugt eine neue Datei mit dem angegebenen Namen
'im angegebenen Pfad
Open exportfile For Output As #Dateinummerist ja kommentiert. Was aber genau meint "For Output"? Eine Funktion ist es ja nicht, immerhin wurde hier wohl kaum geplenkt (;-).
wieso eine Raute vor "Dateinummer"?'Die beiden Schleifen beziehen alle belegten Zellen in die zu erstellende Textdatei ein
For z = 1 To TB.UsedRange.Rows.Count
For s = 1 To TB.UsedRange.Columns.Count
'Das Semikolon ist durch jedes beliebige Feldtrennzeichen ersetzbar
TMP = TMP & CStr(TB.Cells(z, s).Text) & ";"
Next s
'Damit am Ende jeder Zeile, also nach der letzten Zelle kein Strichpunkt mehr gesetzt wird,
'muss das letzte Zeichen wieder abgezogen werden
TMP = Left(TMP, Len(TMP) - 1)
'Print fügt hier immer eine Zeile zur bestehenden Textdatei hinzu
Print #Dateinummer, TMPDruck in die Datei, die das Dateihandle (mit der Raute) bezeichnet - egal wie der Dateinamen ist, und zwar schubse da TMP rein.
Raute ist hier Syntaxbestandteil für den File-Channel.
'Die Variable TMP muss vor der Aufnahme der nächsten Zeile wieder geleert werden
TMP = ""
Next z
Close #DateinummerMach die Datei zu, also "ich habe fertisch".
dito.
Noch eine Anmerkung: Ein Filehandle besorgt man sich mit der Funktion FreeFile().
warum fehlen da oben die Klammern "()" bei Freefile?
Die Klammer ist wohl korrekter.
Nebenbei vielleicht noch eine kurze Anregung, mit welchem Zauberwort eine test.bat losgetreten werden könnte? Irgendwie kommt mir das alles etwas amorph vor. In der Hilfe sind so wenig Querverweise. Bei InputMessagebox wird zB. nicht wie im PHP-Manual auf andere verwandte Funktionen verwiesen, wie MsgBox oder so.
Die Frage ist noch unbeantwortet für mir.
SELF-Dank und Gruß,
frankx