Excel Vba CreateObject("MSXML2.XMLHTTP.3.0") 請益

小弟想用MSXML2.XMLHTTP.3.0 擷取 聚寶網的網路原始碼資料

程式碼如下:


Sub Test()

Set HttpReq = CreateObject("MSXML2.XMLHTTP.3.0")
HttpReq.Open "GET", "http://stock.wearn.com/income.asp?kind=3023", False
HttpReq.send
S = HttpReq.responseText

Cells(1, 1) = S

End Sub

但是擷取出來的資料只能到原始碼第 233 行 div class="topbannera", 而非全部

想請問哪邊出了問題

感謝~~~
2017-04-29 23:18 發佈
大大您好

您可以留意該excel cell內容是否有超出cell的限制,如下網址

https://support.office.com/en-us/article/Excel-specifications-and-limits-1672b34d-7043-467e-8e27-269d656771c3

982行


程式沒錯,資料都有抓下來
很單純就是超出可顯示的範圍而己,就是2樓說的原因
改成一行一行顯示就可以看到全部
謝謝, 那請問要怎麼把資料一行一行列出來呢?

tisme wrote:
要怎麼把資料一行一行列出來呢?...(恕刪)


Dim data As Variant
data = Split(s, vbNewLine)
For i = LBound(data) To UBound(data)
ActiveSheet.Cells(i + 1, 1).Value = data(i)
Next
tisme wrote:
小弟想用MSXML2...(恕刪)


excel使用VBA寫入欄位有255字數限制
如上所說請拆行
注意網頁原始碼也是有可能單行超過255字
要拆行就用字元數下去拆

如果網頁有固定形式的話拆分後各筆資料量又小於255字建議用regexp正規表達式去撈出要的資料
這樣就可以不用拆行了
caoq wrote:
excel使用VBA寫入欄位有255字數限制...(恕刪)


Column width 255 characters
翻成中文並不是這個意思


下面這才是無法顯示的原因
Total number of characters that a cell can contain
32,767 characters

Maximum number of line feeds per cell
253

caoq wrote:
注意網頁原始碼也是有可能單行超過255字
要拆行就用字元數下去拆...(恕刪)


用換行字元來分就行,例如vbnewline
沒有這種連一行都無法顯示的網頁

除非是故意設計的錯誤網頁,為了造成電腦溢位錯誤
通常是為了找漏洞、入侵用的
謝謝您的幫忙, 問題順利解決了 ^^


內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?