返回列表 上一主題 發帖

[發問] Web更新網頁,會跑出 2組出來 (黃色)

[發問] Web更新網頁,會跑出 2組出來 (黃色)

請教
Web更新網頁,會跑出 2組出來 (黃色)
1.該 如何解決處理~
2.可以 如何簡化...
感謝

VB 慢慢..學習中

1536035930618.jpg
2018-9-4 12:40


test-023.rar (21.58 KB)
50 字節以內
不支持自定義 Discuz! 代碼

回復 1# 7777

初步判定,
就算手動全選複製一樣會出現同樣的問題,
建議採用關鍵字複製原始文本,
(可參考一些爬蟲文章)

暫時先幫到這,
等有空我再來研究研究 XD

TOP

回復 1# 7777
  1. Sub Future()

  2. Dim myXML As Object
  3. Set myXML = CreateObject("Microsoft.XMLHTTP")

  4. Dim myHTML As Object
  5. Set myHTML = CreateObject("HTMLFile")

  6. ReDim myArr(1 To 55, 1 To 15)

  7. With myXML
  8.     .Open "GET", "http://info512.taifex.com.tw/Future/FusaQuote_Norl.aspx?t=" & Timer, False
  9.     .send
  10.     myHTML.body.innerHTML = .responseText
  11.     Set myTable = myHTML.getElementByID("ctl00_ContentPlaceHolder1_uc_DgFusaQuote1_dgData")
  12.     i = 1
  13.     For Each myRow In myTable.Rows
  14.         j = 1
  15.         For Each myCell In myRow.Cells
  16.             myArr(i, j) = myCell.innerText
  17.             j = j + 1
  18.         Next
  19.         i = i + 1
  20.     Next
  21. End With

  22. Range("A5").Resize(55, 15).Value = myArr

  23. Set myXML = Nothing
  24. Erase myArr
  25. End Sub
  26. Sub Opt()

  27. Dim myXML As Object
  28. Set myXML = CreateObject("Microsoft.XMLHTTP")

  29. Dim myHTML As Object
  30. Set myHTML = CreateObject("HTMLFile")

  31. ReDim myArr(1 To 30, 1 To 13)

  32. With myXML
  33.     .Open "GET", "http://info512.taifex.com.tw/Future/OptQuote_Norl.aspx?t=" & Timer, False
  34.     .send
  35.     myHTML.body.innerHTML = .responseText
  36.     Set myTable = myHTML.getElementByID("ctl00_ContentPlaceHolder1_uc_DgOptQuote1_UpdatePanel1").getElementsByTagName("table")(0)
  37.     i = 1
  38.     For Each myRow In myTable.Rows
  39.         j = 1
  40.         For Each myCell In myRow.Cells
  41.             myArr(i, j) = myCell.innerText
  42.             j = j + 1
  43.         Next
  44.         i = i + 1
  45.     Next
  46. End With

  47. Range("R5").Resize(30, 13).Value = myArr

  48. Set myXML = Nothing
  49. Erase myArr
  50. End Sub
複製代碼
Excel VBA網頁資料收集教學:
http://forum.twbts.com/thread-20848-1-1.html

TOP

本帖最後由 GBKEE 於 2018-9-5 15:23 編輯

回復 1# 7777
  1. Option Explicit
  2. Sub EX_網頁()
  3.     Dim oXmlhttp As Object, oHtmldoc As Object, E As Object, R As Integer, C As Integer
  4.     Dim I As Integer, AR(1 To 2)
  5.     AR(1) = "http://info512.taifex.com.tw/Future/FusaQuote_Norl.aspx"
  6.     AR(2) = "http://info512.taifex.com.tw/Future/OptQuote_Norl.aspx"
  7.     Cells.Clear
  8.     For I = 1 To 2
  9.         Set oXmlhttp = CreateObject("msxml2.xmlhttp")
  10.         Set oHtmldoc = CreateObject("htmlfile")
  11.         With oXmlhttp
  12.             .Open "Get", AR(I), False
  13.             .send
  14.             oHtmldoc.write .responseText
  15.         End With
  16.         Set E = oHtmldoc.all.tags("TABLE")( 12))
  17.         For R = 0 To E.Rows.Length - 1
  18.             For C = 0 To E.Rows(R).Cells.Length - 1
  19.                 With IIf(I = 1, [A26], [T26])
  20.                 .Cells(R + 1, C + 1) = E.Rows(R).Cells(C).innerText
  21.                 End With
  22.             Next
  23.         Next
  24.         Set oXmlhttp = Nothing
  25.         Set oHtmldoc = Nothing
  26.     Next
  27. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 4# GBKEE


謝謝超級板主的分享!
因為有你們熱心的分享,
才能讓我們這些後輩可以開眼界~  : )

TOP

回復 3# iamaraymond

感謝
Raymond Chien 的大力幫忙
程式OK
本人再研究學習中,
超級感謝~~熱心的幫忙。
50 字節以內
不支持自定義 Discuz! 代碼

TOP

回復 4# GBKEE

謝謝 GBKEE 的分享!
程式OK

Set E = oHtmldoc.all.tags("TABLE")( 12))
多了 一個 ")"

感謝
50 字節以內
不支持自定義 Discuz! 代碼

TOP

        靜思自在 : 做好事不能少我一人,做壞事不能多我一人。
返回列表 上一主題