Lokale HTML-Datei mit VBA in String einlesen
Das fühlt sich so an, als sollte es einfach sein. Ich habe eine .HTML-Datei auf meinem Computer gespeichert und möchte die gesamte Datei in eine Zeichenfolge einlesen. Beim probieren ist das super unkompliziert
Dim FileAsString as string
Open "C:\Myfile.HTML" for input as #1
Input #1, FileAsString
Close #1
debug.print FileAsString
Ich bekomme nicht die ganze Datei. Ich erhalte nur die ersten paar Zeilen (ich weiß, dass das unmittelbare Fenster abgeschnitten ist, aber das ist nicht das Problem. Ich erhalte definitiv nicht die gesamte Datei in meinen String.) Ich habe auch versucht, eine alternative Methode mit dem Dateisystemobjekt zu verwenden, und Ich habe ähnliche Ergebnisse erzielt, nur diesmal mit vielen seltsamen Zeichen und Fragezeichen. Das lässt mich denken, dass es sich wahrscheinlich um eine Art Codierungsproblem handelt. (Obwohl ich ehrlich gesagt nicht ganz verstehe, was das bedeutet. Ich weiß, dass es verschiedene Codierungsformate gibt und dass dies zu Problemen beim Parsen von Zeichenfolgen führen kann, aber das war es auch schon.)
Im Allgemeinen möchte ich Folgendes gerne wissen: Wie kann ich mit VBA eine Datei mit einer beliebigen Erweiterung (die in einem Texteditor angezeigt werden kann) und Länge (die das VBA-Zeichenfolgenlimit nicht überschreitet) öffnen? Stellen Sie sicher, dass alle Zeichen, die ich in einem einfachen Texteditor sehen würde, in eine Zeichenfolge eingelesen werden? (Wenn dies nicht (einfach) möglich ist, würde ich mich über einen Hinweis auf eine Methode freuen, die wahrscheinlich mit HTML-Dateien funktioniert.) Vielen Dank für Ihre Hilfe
BEARBEITEN: Hier ist ein Beispiel, was passiert, wenn ich die vorgeschlagene Methode verwende. Speziell
Dim oFSO As Object
Dim oFS As Object, sText As String
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFS = oFSO.OpenTextFile(Path)
Do Until oFS.AtEndOfStream
sText = oFS.ReadAll()
Loop
FileToString = sText
Set oFSO = Nothing
Set oFS = Nothing
End Function
Ich zeige Ihnen sowohl den Anfang (über ein Meldungsfeld) als auch das Ende (über das Direktfenster), da beide auf unterschiedliche Weise seltsam sind. In beiden Fällen vergleiche ich es mit einem Screenshot der in Chrome angezeigten HTML-Quelle:
Anfang:
Ende: