Board logo

標題: innerText 解析 [打印本頁]

作者: DanielWONG    時間: 2017-10-28 09:19     標題: innerText 解析

VBA 代碼中使用
“”
Set TD3 = IE.document.getElementById("cp_pLeft")
W.Range(1 & 1).Value = TD3.innerText
“”

結果可以看到很長的TD3.innerText內容, 如下
“”

收市價(港元)  219.200 升跌 +1.000成交量|手 2.79百萬買價(延遲)1 219.20前收市價/開市 218.20 / 218.20

升跌(%) +0.458%成交金額 6.12億賣價(延遲)1 219.40波幅 218.20 - 220.20

均價 219.221沽空額/比率(%)(27/10) 4.75千萬 / 7.756%

市盈率(倍)/TTM  46.050 / 42.563每股盈利(港元)(截至 2016/12) 4.760

……



我只要兩樣內容,成交金額 6.12 和 均價 219.221, 具體說只要 6.12 和219.221, 請問怎麼寫後面的解析 TD3.innerText 代碼?
多謝!
作者: Scott090    時間: 2017-11-1 06:17

回復 1# DanielWONG


    試看看這樣可以嗎?
  1. Sub test()
  2. Dim i&, strT$, strAA$, strQQ$
  3. Dim Ans1#, Ans2#

  4. ''' strQQ = TD3.innerText
  5.     strQQ = "收市價(港元)  219.200 升跌 +1.000成交量|手 2.79百萬買價(延遲)1 219.20前收市價/開市 218.20 / 218.20" & _
  6. "升跌(%) +0.458%成交金額 6.12億賣價(延遲)1 219.40波幅 218.20 - 220.20" & _
  7. "均價 219.221沽空額/比率(%)(27/10) 4.75千萬 / 7.756%" & _
  8. "市盈率(倍)/TTM  46.050 / 42.563每股盈利(港元)(截至 2016/12) 4.760"


  9. Ans1 = FindText(strQQ, "成交金額")
  10. Ans2 = FindText(strQQ, "均價")

  11. Debug.Print Ans1, Ans2

  12. End Sub

  13. Function FindText(strQQ$, QQ$)
  14.     Dim strAA$, a%, b%
  15.     a = InStr(strQQ, QQ)
  16.     b = Len(QQ) - 1
  17.     strAA = ""
  18.     For i = 1 To 10
  19.         strT = Mid(strQQ, i + a + b, 1)
  20.         If Asc(strT) <> 32 Then     '去除空格
  21.                If Asc(strT) < 46 Or Asc(strT) > 57 Then Exit For       '數字的 ASCII碼
  22.                strAA = strAA & strT
  23.         End If
  24.     Next
  25.     FindText = strAA
  26.    
  27. End Function
複製代碼
建議把你的 VBA 貼出,也許有其他的人不用解析字串就可以有答案




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)