標題:
[發問]
vba自動儲存網頁檔案
[打印本頁]
作者:
msmplay
時間:
2018-3-28 19:59
標題:
vba自動儲存網頁檔案
請問如何讓以下程式碼,執行到檔案下載的時候,自動儲存檔案至同資料夾並保持原檔名.csv檔(下載檔案為.csv檔)
Sub 查詢每日數據並下載檔案()
Dim indexer As Integer
indexer = 6656 + Day(Now()) - 23
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','" & indexer & "')"
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]28482[/attach]
作者:
GBKEE
時間:
2018-4-2 11:08
回復
1#
msmplay
如圖IE上移動滑鼠到CSV下載的位置,可看到檔案的網址
[attach]28495[/attach]
Option Explicit
Const FileName = "d:\mycsv.csv" '存檔位置錄,可自行修改
Const URL = "http://www.twse.com.tw/exchangeReport/STOCK_DAY?response=csv&date=20180101&stockNo=2303"
Sub Ex_存檔一()
Application.DisplayAlerts = False
With Workbooks.Open(URL)
.SaveAs FileName
.Close
End With
Application.DisplayAlerts = True
End Sub
Sub Ex_存檔二()
Dim Xmlhttp As Object
Set Xmlhttp = CreateObject("WinHttp.WinHttpRequest.5.1")
With Xmlhttp
.Open "POST", URL, False
.Send
End With
With CreateObject("ADODB.Stream")
.Type = 1
.Open
.write Xmlhttp.ResponseBody
If Dir(FileName) <> "" Then Kill FileName '相同名稱的檔案存在會有錯誤
.SaveToFile FileName
.Close
End With
End Sub
複製代碼
作者:
jackyq
時間:
2018-4-2 16:21
use win api
作者:
msmplay
時間:
2018-4-12 20:46
回復
2#
GBKEE
G大~~~測試已成功,非常感謝熱心幫忙~~~~~~~~
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)