这感觉应该很简单。我的计算机上存储了一个 .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
我将向您展示开头(通过消息框)和结尾(通过即时窗口),因为两者在不同方面都很奇怪。在这两种情况下,我都会将其与 chrome 中显示的 html 源的屏幕截图进行比较:
开始:
结尾: