iT邦幫忙

0

vba 抓取 javascript:__doPostBack('','')數值每日自動+1問題

vba
  • 分享至 

  • xImage

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號)
以此類推.....

wwx iT邦好手 1 級 ‧ 2018-03-26 08:46:25 檢舉
先修正例如的內容說明吧...
=24~31都是代表當月24號嗎?
=1仍然是當月?還是次月?
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
marlin12
iT邦研究生 5 級 ‧ 2018-03-25 11:08:48
最佳解答

如果數字6656代表每月的23日,可以用以下的VBA。

Dim indexer As Integer
indexer = 6656 + Day(Now()) - 23
.Navigate "javascript:__doPostBack('ct600$phCondition3$cldDate','" & indexer & "')"

如果數字6656代表2018年3月23日,可以用以下的VBA。

Dim indexer As Integer 
indexer = 6656 + DateDiff("d", "23/3/18", Now())
.Navigate "javascript:__doPostBack('ct600$phCondition3$cldDate','" & indexer & "')"

我要發表回答

立即登入回答