返回列表 上一主題 發帖

[發問]VBA抓取.PHP頁問題??

回復 12# lalalada


感謝您提供的vba code,經測試完全正常又不需要開啟IE網頁,值得觀摩學習!
很抱歉,我是小學生,不能下載檔案,是個小屁孩!

TOP

回復 19# gto1208
如果您是問#12的Sub WrittenByLalalada(),直接複製到您的巨集去執行,就會跳出一個視窗詢問查詢股票代號,直接輸入就好了。
很抱歉,我是小學生,不能下載檔案,是個小屁孩!

TOP

回復 22# gto1208
請參考自行修改。
  1. Sub Macro1()
  2. '
  3. ' Macro1 Macro
  4. ' Lu 在 2003/2/28 錄製的巨集
  5. '
  6. ' 快速鍵: Ctrl+a
  7. '
  8. Dim yy, stock

  9. yy = Application.InputBox(prompt:="請輸入查詢年份(如2013):", Title:="上櫃統計報表 > 個股月成交資訊")
  10. stock = Application.InputBox(prompt:="請輸入股票代碼(如3260):", Title:="上櫃統計報表 > 個股月成交資訊")

  11. If yy = "" Then yy = "2013"
  12. If stock = "" Then stock = "3260"

  13. fileIdx = "C:\MyStock\Test\st44_" & stock & ".csv"

  14. myURL = "http://www.gretai.org.tw/ch/stock/statistics/monthly/download_st44.php"
  15. myPar = "yy=" & yy & "&stk_no=" & stock

  16. Set WinHttpReq = CreateObject("Microsoft.XMLHTTP")

  17. With WinHttpReq
  18.     .Open "POST", myURL, False
  19.     .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
  20.     .Send myPar
  21.     myURL = .ResponseBody
  22.     Set oStream = CreateObject("ADODB.Stream")
  23.     oStream.Open
  24.     oStream.Type = 1
  25.     If WinHttpReq.ResponseText = "" Then Exit Sub
  26.     oStream.Write WinHttpReq.ResponseBody
  27.     On Error Resume Next
  28.     Kill fileIdx
  29.     On Error GoTo 0
  30.     oStream.SaveToFile fileIdx
  31.     oStream.Close
  32. End With

  33. End Sub
複製代碼
很抱歉,我是小學生,不能下載檔案,是個小屁孩!

TOP

回復 22# gto1208
問題在這裡
'將資料先存至c糟
    With WinHttpReq
    '.Open "POST", "http://www.gretai.org.tw/ch/stock/statistics/monthly/download_st44.php", False
  您將這段指令變成remark,正確如下:
   .Open "POST", "http://www.gretai.org.tw/ch/stock/statistics/monthly/download_st44.php", False
很抱歉,我是小學生,不能下載檔案,是個小屁孩!

TOP

        靜思自在 : 【時日莫空過】一個人在世間做了多少事,就等於壽命有多長。因此必須與時間競爭,切莫使時日空過。
返回列表 上一主題