Board logo

標題: [發問] vba 抓取 javascript:__doPostBack('','')數值每日自動+1問題 [打印本頁]

作者: msmplay    時間: 2018-3-25 09:42     標題: vba 抓取 javascript:__doPostBack('','')數值每日自動+1問題

本帖最後由 msmplay 於 2018-3-25 09:45 編輯

Sub 查詢每日數據()
Set myIE = CreateObject("InternetExplorer.Application")
With myIE
.Visible = true
.Navigate "http://xxxxxxxxxxxx/xxx.aspx" '查詢數據網址

Do While .ReadyState <> 4
    DoEvents
Loop
.Navigate "javascript:__doPostBack('ct600$phCondition3$cldDate','6656')" '點選查詢日期'6656'代表數字23,也就是當月23號
Application.Wait Now + 2 / 86400 '等待2秒
.document.forms(0).all("ct600_btnConfirm").Click '點選查詢按鈕
End With
End Sub
---------------------------------------------------------------------------------------------------------

以上程式碼已知:
可使用.Navigate "javascript:__doPostBack('ct600$phCondition3$cldDate','6656')"點選網頁日期視窗的日期

問題:
如何讓'6656'這個數值能每日自動+1,以自動取得每日數據,無需人工每日更改數據

例如:
6656 = 23 (代表當月23號)
6657 = 24 (代表當月24號)
6658 = 25 (代表當月24號)
6659 = 26 (代表當月24號)
6660 = 27 (代表當月24號)
6661 = 28 (代表當月24號)
6662 = 29 (代表當月24號)
6663 = 30 (代表當月24號)
6664 = 31 (代表當月24號)
6665 = 1 (代表當月1號)
以此類推.....
作者: jcchiang    時間: 2018-3-26 14:50

回復 1# msmplay

.Navigate "javascript:__doPostBack('ct600$phCondition3$cldDate','6656')" '點選查詢日期'6656'代表數字23,也就是當月23號

我用2018/3/26的日期轉換是43185,減去36529就是6656,所以請自行調整(因為6656轉換後是1918/3/22)

.Navigate "javascript:__doPostBack('ct600$phCondition3$cldDate',' " & (Format(Date, "0") - 36529) & " ')"
作者: msmplay    時間: 2018-3-26 19:10

回復 2# jcchiang


   j大~~~~真是太厲害了你,實測已成功,非常感謝幫忙喔!!
作者: msmplay    時間: 2018-3-27 20:39

回復 2# jcchiang

   j大~~可以再向你請教一個問題嗎?請問以下需要自動儲存檔案的程式碼你會嗎?
----------------------------------------------------------
Sub 查詢每日數據並下載檔案()
Set myIE = CreateObject("InternetExplorer.Application")
With myIE
.Visible = true
.Navigate "http://xxxxxxxxxxxx/xxx.aspx" '查詢數據網址

Do While .ReadyState <> 4
    DoEvents
Loop

.Navigate "javascript:__doPostBack('ct600$phCondition3$cldDate',' " & (Format(Date, "0") - 36529) & " ')"
Application.Wait Now + 2 / 86400 '等待2秒
.document.forms(0).all("ct600_btnConfirm").Click '點選查詢按鈕

.Navigate "http://10.178.1.140:8023/ReportPage/ReportAgentToDay_28_tptv.aspx" '查詢數據會自動產生於此網址頁面

     Do Until .ReadyState = 4
        DoEvents
     Loop

.document.forms(0).all("ctl00_btnDownload").Click '點選下載按鈕

  '點選下載按鈕後,網頁會彈出下載檔案視窗,詢問"開啟舊檔"、"儲存"、"取消"選項
  '希望能自動儲存至同資料夾並保持原檔名.csv檔(下載檔案為.csv檔)
  '請問以上這段程式碼該怎麼寫呢?

End With
End Sub

[attach]28477[/attach]

作者: jcchiang    時間: 2018-3-28 08:29

回復 4# msmplay
我沒有試過從網站下載儲存,有時間我再研究一下
或許站上有其他高手能幫你解決




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