gpt4 book ai didi

html - 使用 VBA 将本地 HTML 文件读入字符串

转载 作者:太空宇宙 更新时间:2023-11-04 14:40:05 25 4
gpt4 key购买 nike

这个感觉应该很简单。我的计算机上存储了一个 .HTML 文件,我想将整个文件读入一个字符串。当我尝试 super 直白的时候

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 源代码的屏幕截图进行比较:

开始: enter image description here

enter image description here

结束: enter image description here

enter image description here

最佳答案

这是一种方法

Option Explicit

Sub test()

Dim oFSO As Object
Dim oFS As Object, sText As String

Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFS = oFSO.OpenTextFile("C:\Users\osknows\Desktop\import-store.csv")

Do Until oFS.AtEndOfStream
' sText = oFS.ReadLine 'read line by line
sText = oFS.ReadAll()
Debug.Print sText
Loop
End Sub

编辑:

尝试将以下行更改为以下 3 行之一,看看是否有任何不同

http://msdn.microsoft.com/en-us/library/aa265347(v=vs.60).aspx

Set FS = FSO.OpenTextFile("C:\Users\osknows\Desktop\import-store.csv", 1, 0)
Set FS = FSO.OpenTextFile("C:\Users\osknows\Desktop\import-store.csv", 1, 1)
Set FS = FSO.OpenTextFile("C:\Users\osknows\Desktop\import-store.csv", 1, 2)

编辑2:

这段代码对你有用吗?

Function ExecuteWebRequest(ByVal url As String) As String

Dim oXHTTP As Object

Set oXHTTP = CreateObject("MSXML2.XMLHTTP")
oXHTTP.Open "GET", url, False
oXHTTP.send
ExecuteWebRequest = oXHTTP.responseText
Set oXHTTP = Nothing

End Function

Function OutputText(ByVal outputstring As String)
MyFile = ThisWorkbook.Path & "\temp.html"
'set and open file for output
fnum = FreeFile()
Open MyFile For Output As fnum
'use Print when you want the string without quotation marks
Print #fnum, outputstring
Close #fnum
End Function

Sub test()
Dim oFSO As Object
Dim oFS As Object, sText As String
Dim Uri As String, HTML As String

Uri = "http://www.forrent.com/results.php?search_type=citystate&page_type_id=city&seed=859049165&main_field=12345&ssradius=-1&min_price=%240&max_price=No+Limit&sbeds=99&sbaths=99&search-submit=Submit"
HTML = ExecuteWebRequest(Uri)
OutputText (HTML)

Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFS = oFSO.OpenTextFile(ThisWorkbook.Path & "\temp.html")

Do Until oFS.AtEndOfStream
' sText = oFS.ReadLine 'read line by line
sText = oFS.ReadAll()
Debug.Print sText
Loop

End Sub

enter image description here

关于html - 使用 VBA 将本地 HTML 文件读入字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18286598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com