返回列表 上一主題 發帖

[發問] 請教 如何在EXCELL取得該網站之"即時估計淨值"

[發問] 請教 如何在EXCELL取得該網站之"即時估計淨值"

請教 如何在EXCELL取得該網站之"即時估計淨值"     http://www.p-shares.com/#/RtNav/Index
我只能抓到一些無用的文字(內容如下)
【元大投信獨立經營管理】本基金經金管會核准或同意生效,惟不表示絕無風險。本公司以往之經理績效, 不保證本基金之最低投資收益;本公司除盡善良管理人之注意義務外,不負責本基金之盈虧,亦不保證最低之 收益,投資人申購前應詳閱基金公開說明書。本文提及之經濟走勢預測不必然代表基金之績效,基金投資風險 請詳閱基金公開說明書。有關基金應負擔之相關費用,已揭露於基金公開說明書中,投資人可向本公司及基金 之銷售機構索取,或至公開資訊觀測站及 本公司網站 中查詢。基金非存款或保險,故無受存款保險、保險安定基金或其他相關保障機制之保障。

麻煩高手指導我如何於EXCELL內將此網頁載入(如圖) 在此先謝謝您了

回復 32# yan2463

這隻程式不適合定時執行,但還是貼上來給你參考!!
  1. Option Explicit
  2. Public doneT As Boolean
  3. Sub Exnets123() '
  4.     Dim E As Object, tTime, tabtxt As String
  5.     With CreateObject("InternetExplorer.Application")
  6.         '.Visible = True 'False
  7.         .navigate "http://www.yuantaetfs.com/#/RtNav/Index"
  8.         Do While .Busy Or .readyState <> 4: DoEvents: Loop
  9.         Application.SendKeys "~", True   '按下同意鍵
  10.         '.document.getElementsByTagName("button")(0).Click  '按下同意鍵
  11.         tTime = Timer
  12.         Do
  13.             Set E = .document.getElementsByTagName("TABLE")(21)  '改(22)也可,E.all.Length="數量要跟著改"
  14.             DoEvents
  15.             If Timer - tTime > 5 Then MsgBox "請修改 E.all.Length =" & E.all.Length: Exit Do  '確定無誤後可關閉
  16.         Loop Until Not E Is Nothing And E.all.Length = 415  '數量可能會不太一樣
  17.         tabtxt = .document.getElementsByTagName("TABLE")(21).outerHTML
  18.         tabtxt = Replace(tabtxt, "<span class=""ng-hide"" ng-show=""o.navFluct>0"">▲</span>", "")
  19.         tabtxt = Replace(tabtxt, "<span class=""ng-hide"" ng-show=""o.navFluct<0"">▼</span>", "")
  20.         tabtxt = Replace(tabtxt, "<span class=""ng-hide"" ng-show=""o.priceFluct>0"">▲</span>", "")
  21.         tabtxt = Replace(tabtxt, "<span class=""ng-hide"" ng-show=""o.priceFluct<0"">▼</span>", "")
  22.         .document.body.innerHTML = tabtxt
  23.         .ExecWB 17, 2       '  Select All
  24.         .ExecWB 12, 2       '  Copy selection
  25.         With ActiveSheet    ''修改你要貼上的工作表
  26.             .Cells.Clear
  27.             .[a1].Select
  28.             .PasteSpecial 'NoHTMLFormatting:=True  '(取消註解,改成純文字貼上)
  29.         End With
  30.         'Selection.Columns.AutoFit
  31.         .Quit        '關閉網頁
  32.     End With
  33.     If doneT = True Then
  34.         Application.OnTime Time + #12:00:10 AM#, "Exnets123" '間隔多少時間開啟
  35.     End If
  36. End Sub
  37. Sub 開關() '另設按鈕
  38. doneT = IIf(doneT = True, False, True)  '自行修改適合的方式
  39. MsgBox IIf(doneT = True, "定時開啟", "定時關閉") '開啟再去執行Exnets123程式就能間隔執行,關閉就能取消間隔執行
  40. End Sub
複製代碼

TOP

回復 30# yan2463

我有下載25樓的VBA,想以這個檔案延伸
1.因需要按鈕才會更新,想請問是否有每一分或十分鐘檔案可自行更新
2.如要用按鈕更新,如何才能在在A工作表更新鈕,在工作表B更新
3.對VBA真的不熟,所以不知這樣問是否OK

TOP

回復 1# yan2463

yan2463 請問您的問題解決了嗎?
yan2463 說:
回復 lcctno 我的問題尚未解決

回復 yan2463
請看 26樓
  http://forum.twbts.com/redirect. ... 5&fromuid=21526

TOP

[版主管理留言]
  • GBKEE(2015/7/23 10:23): 請po上程式碼

回復 25# no3-taco

請問如果想每1分鐘,或每十分鐘自動更新一次,該如何改

TOP

回復 28# GBKEE

之前有一篇帖子也是卡在這裡,今天終於看到更好的解決辦法了。:lol

TOP

回復 27# no3-taco

Application.Wait Now + #12:00:02 AM#   '經常沒抓到改2秒

網頁頻寬下載速度跟不上程式執行的速度所致
可修改如下
  1.   'Application.Wait Now + #12:00:01 AM#
  2.         Do
  3.             Set E = .Document.getElementsByTagName("TABLE")(21)
  4.         Loop Until Not E Is Nothing And E.ALL.Length = 431
  5.         
  6.          .Document.body.innerHTML = E.outerHTML
複製代碼
如圖示 程式會停在中斷點


感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 26# lcctno

.Visible = True 改成下面
.Visible = False    '可以隱藏ie

如果偶爾抓不到,多按幾下,或者把時間增加到兩秒
Application.Wait Now + #12:00:02 AM#   '經常沒抓到改2秒

TOP

回復 25# no3-taco


哇 真的成功了 非常非常的感謝您的努力(幫助)  我得好好研究您提供的內容了



可用之測試檔
即時估計淨值.zip (9.49 KB)

TOP

我不太會用回復,再試看看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim E As Object, myItems As Object, myitem
  4.     With CreateObject("InternetExplorer.Application")
  5.         .Visible = True
  6.         .Navigate "http://www.yuantaetfs.com/#/RtNav/Index"
  7.         Do While .Busy Or .readyState <> 4: DoEvents: Loop
  8.         'Application.Wait Now + #12:00:01 AM#   '有錯在開啟
  9.         Set myItems = .Document.getElementsByTagName("button")
  10.         For Each myitem In myItems
  11.             If myitem.Name = "Agree" Then
  12.                 myitem.Click                              '按下送出查詢按鈕
  13.             End If
  14.         Next
  15.         Application.Wait Now + #12:00:01 AM#
  16.         Set E = .Document.getElementsByTagName("TABLE")(21)
  17.          .Document.body.innerHTML = E.outerHTML
  18.         .ExecWB 17, 2       '  Select All
  19.         .ExecWB 12, 2       '  Copy selection
  20.         With ActiveSheet
  21.             .Cells.Clear
  22.             .[A1].Select
  23.             .PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:=False, NoHTMLFormatting:=True
  24.         End With
  25.         .Quit        '關閉網頁
  26.     End With
  27. End Sub
複製代碼

TOP

        靜思自在 : 為自己找藉口的人永遠不會進步。
返回列表 上一主題