Board logo

標題: 網頁控制出了問題! 請高手指點。 [打印本頁]

作者: justintoolbox    時間: 2015-6-17 10:20     標題: 網頁控制出了問題! 請高手指點。

各位高手,小弟遇到麻煩了!懇請各位高手指點。

期望顯示:希望能顯示所有的資料內容。
目前問題描述:目前只能將參數改成『全部』,但網頁資料沒辦法更新為顯示全部的資料。

希望各位高手能指點迷津...
  1.    
  2. my_url = "http://www.tpex.org.tw/web/stock/exright/preAnnounce/PrePost.php"
  3.     With CreateObject("InternetExplorer.Application")
  4.         .Visible = True
  5.         .navigate my_url
  6.         Do While .Busy Or .readyState <> 4: DoEvents: Loop
  7.         With .document
  8.                For Each A In .getElementsByTagName("SELECT")
  9.                    If A.Name = "PrePost_result_length" Then A.Value = -1
  10.                Next
  11.         End With
  12.    End with
複製代碼

作者: justintoolbox    時間: 2015-6-18 10:59

各位高手,小弟遇到麻煩了!懇請各位高手指點。

期望顯示:希望能顯示所有的資料內容。
目前問題描述: ...
justintoolbox 發表於 2015-6-17 10:20


有沒有高手可以指點迷津一下?
我目前卡在只能在網頁上改變參數為『全部』顯示,但是網頁卻不能更新為『全部資料』。

拜託!各位高手!∼ 解開我的疑惑!
作者: GBKEE    時間: 2015-6-18 16:02

回復 2# justintoolbox
  1. Option Explicit
  2. Sub Ex()
  3.     Dim my_url As String, A As Object
  4.     my_url = "http://www.tpex.org.tw/web/stock/exright/preAnnounce/PrePost.php"
  5.     With CreateObject("InternetExplorer.Application")
  6.         .Visible = True
  7.         .Navigate my_url
  8.         Do While .Busy Or .ReadyState <> 4: DoEvents: Loop
  9.         With .document
  10.                For Each A In .getElementsByTAGName("SELECT")
  11.                     If A.Name = "PrePost_result_length" Then
  12.                         A.Value = -1
  13.                         A.fireEvent ("onchange")
  14.                     End If
  15.                Next
  16.         End With
  17.    End With
  18. End Sub
複製代碼

作者: justintoolbox    時間: 2015-6-19 09:19

回復  justintoolbox
GBKEE 發表於 2015-6-18 16:02


GBKEE版主,您好。

剛剛測試還是一樣沒有辦法更新為全部資料,只能顯示前10筆資料(如下圖)。是不是哪裡該修正呢?
[attach]21204[/attach]
作者: GBKEE    時間: 2015-6-19 14:43

回復 4# justintoolbox
我用XP, IE8 可顯示59筆資料!!
作者: justintoolbox    時間: 2015-6-20 06:08

回復  justintoolbox
我用XP, IE8 可顯示59筆資料!!
GBKEE 發表於 2015-6-19 14:43

GBKEE版主,謝謝你的回覆。
只是我目前用的是Win8.1+IE11 跑出來結果仍然是沒有辦法更新顯示全部資料  :'( 。
所以想再問問版主是不是有其他的解決辦法呢?感謝你:P 。
作者: GBKEE    時間: 2015-6-20 14:15

可請有IE11者或其他PC試試看,是否是你IE的問題.
作者: justintoolbox    時間: 2015-6-20 15:22

可請有IE11者或其他PC試試看,是否是你IE的問題.
GBKEE 發表於 2015-6-20 14:15

GBKEE版主你好,
謝謝版主提示,我有用另一台筆電(WIN8.1+IE11+OFFICE2010)測試,
也以版主的巨集跑一次,結果還是一樣... 同樣是只能在選項改成『全部』,但在IE不能更新顯示全部資料。

這就苦惱了... 看起來無解了>_<..

版主,想請問你
如果退而求其次:改成"點選下一頁"(如下圖),
只是這部分我不知道該怎麼寫?
不知道版主能不能再幫個忙,非常感謝!

[attach]21221[/attach]
作者: azrael19    時間: 2015-6-20 15:51

我用Win7+IE11 改成下面代碼就可以顯示全部,你可以試試看...
  1. Option Explicit
  2. Sub Ex()
  3.     Dim my_url As String, A As Object, evt As Object
  4.     my_url = "http://www.tpex.org.tw/web/stock/exright/preAnnounce/PrePost.php"
  5.     With CreateObject("InternetExplorer.Application")
  6.         .Visible = True
  7.         .Navigate my_url
  8.         Do While .Busy Or .ReadyState <> 4: DoEvents: Loop
  9.         
  10.         Set evt = .document.createEvent("HTMLEvents")
  11.         evt.initEvent "change", True, False
  12.         
  13.         With .document
  14.                For Each A In .getElementsByTAGName("SELECT")
  15.                     If A.Name = "PrePost_result_length" Then
  16.                         A.Value = -1
  17.                         'A.fireEvent ("onchange")
  18.                         A.dispatchEvent evt
  19.                     End If
  20.                Next
  21.         End With
  22.    End With
  23. End Sub
複製代碼

作者: justintoolbox    時間: 2015-6-20 15:56

我用Win7+IE11 改成下面代碼就可以顯示全部,你可以試試看...
azrael19 發表於 2015-6-20 15:51


哇!太棒了! 我剛剛也找了國外網站有人也提相同的問題(http://www.experts-exchange.com/Programming/Languages/Visual_Basic/Q_27990183.html),
照他的方式修改,結果也成功了!正要PO上來告訴大家我解決的方式,
這時候就有好心人azrael19也PO上來了!太感謝azrael19!!!

也謝謝版主!耐心的答覆!感謝




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