Читать локальный HTML-файл в строку с VBA
Такое ощущение, что все должно быть просто. У меня есть файл .HTML, хранящийся на моем компьютере, и я хотел бы прочитать весь файл в строку. Когда я попробую супер просто
Dim FileAsString as string
Open "C:\Myfile.HTML" for input as #1
Input #1, FileAsString
Close #1
debug.print FileAsString
Я не получаю весь файл. Я получаю только первые несколько строк (я знаю, что немедленное окно отключается, но это не проблема. Я определенно не помещаю весь файл в мою строку.) Я также попытался использовать альтернативный метод с использованием объекта файловой системы, и получил аналогичные результаты, только на этот раз с множеством странных символов и вопросительных знаков. Это заставляет меня думать, что это, вероятно, какая-то проблема с кодировкой. (Хотя, честно говоря, я не совсем понимаю, что это значит. Я знаю, что существуют разные форматы кодирования, и это может вызвать проблемы при разборе строк, но это все.)
Итак, в общем, вот что я действительно хотел бы знать: как я могу использовать vba, чтобы открыть файл с любым расширением (которое можно просмотреть в текстовом редакторе) и длиной (не превышающей ограничение строки VBA), и быть уверенным, что любые символы, которые я бы увидел в простом текстовом редакторе, - это то, что читается в строку? (Если это не может быть (легко) сделано, я, безусловно, был бы признателен за указание на метод, который может работать с файлами .html) Большое спасибо за вашу помощь
РЕДАКТИРОВАТЬ: Вот пример того, что происходит, когда я использую предложенный метод. конкретно
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
Я покажу вам как начало (через окно сообщения), так и конец (через непосредственное окно), потому что оба странны по-разному. В обоих случаях я сравню его с снимком экрана исходного HTML-кода, отображаемого в Chrome:
Начиная с:
Конец: