返回列表 上一主題 發帖

[發問] 網路資料下載問題,

本帖最後由 HSIEN6001 於 2014-11-20 23:52 編輯

回復 1# wahaha6666

何不直接抓合併報表,不用一檔一檔抓
    http://mops.twse.com.tw/mops/web/t163sb04 (已包含銀行股)

PS: 剛剛看內容比較詳細 ,  ((請忽略我的建議 :))

TOP

本帖最後由 HSIEN6001 於 2014-11-21 00:18 編輯

回復 1# wahaha6666
也是參考GBKEE大大的Code
試試,有符合需求?!
  1. Dim 網頁 As Object

  2. Sub 半自動()
  3.     Dim i As Integer, K As Integer, ii, J
  4.     Dim path As String
  5.     path = "C:\Stock\"

  6.     '程式第一次執行: 打開網頁,在網頁中手動選擇資料後  , 按[總行]or[選定分行] ; 有資料的,執行第2次下載後會自動關閉網頁
  7.     '程式第二次執行: 讀取網頁資料到 Excel中.   (有出現table資料表的,再按一次執行程式則會下載檔案至目標)
  8.    
  9. 年度 = "103"
  10. 季期 = "3"
  11. 代號 = "2880"
  12.    
  13.    
  14. On Error GoTo RE網頁

  15. 1:
  16.     If 網頁 Is Nothing Then
  17.         Set 網頁 = CreateObject("InternetExplorer.Application")
  18.             With 網頁
  19.                 .Visible = True
  20.                 .navigate "http://mops.twse.com.tw/mops/web/t164sb04?encodeURIComponent=1&step=1&firstin=ture&off=1&keyword4=&code1=&TYPEK2=&checkbtn=&queryName=co_id&TYPEK=all&isnew=false&co_id=" & 代號 & "&year=" & 年度 & "&season=" & 季期
  21.                 .Height = 500
  22.                 .Width = 1050
  23.             End With

  24.         Exit Sub
  25.     End If
  26.     If 網頁.Visible = False Then
  27.        網頁.Value = True
  28.         Exit Sub
  29.     End If

  30.     '**********讀取網頁 資料 *******************
  31.     Set A = 網頁.document.getElementsByTagName("table")
  32.          With Workbooks.Add
  33.             On Error Resume Next
  34.                '************************
  35.                ' For ii = 0 To A.Length - 1        '不知道table範圍在何處: 從0開始
  36.                '************************
  37.                 For ii = 11 To A.Length - 1
  38.                     For i = 0 To A(ii).Rows.Length - 1

  39.                         K = K + 1
  40.                         For J = 0 To 8
  41.                             Cells(K, J + 1) = A(ii).Rows(i).Cells(J).innerText
  42.                         Next
  43.                     Next
  44.                 Next
  45.             '
  46.             If Dir(path & 代號 & ".xls") <> "" Then Kill (path & 代號 & ".xls")
  47.             ActiveWorkbook.SaveAs Filename:=path & 代號 & ".xls"
  48.             ActiveWindow.Close
  49.         End With
  50.     Set A = Nothing
  51.     網頁.Quit    '打開的網頁,再次執行後會自動下載有table的資料,完成下載後,自動關閉已下載完成的IE網頁
  52.     Exit Sub
  53. RE網頁:
  54.     Set 網頁 = Nothing
  55.    Resume 1
  56. End Sub
複製代碼

TOP

回復 4# wahaha6666
我執行沒問題喔! 可能你沒有搞懂流程
(針對有資料去執行,沒資料的直接關閉網頁,重新程序)

(1)執行程式 (第1次開啟網頁)
(2)網業開啟後......28800001要按下去,才會打開資料內容   (目前2880沒資料,點下去,沒資料就關閉網頁再重新程序)
(3)執行程式(第2次下載網頁表格)
(4)已經下載完成,並關閉網頁.

財報.rar (11.59 KB)

TOP

回復 6# GBKEE

    太好了!!不用點選就完成 (謝謝!!
我得慢慢研究~研究~  ^^!!

TOP

        靜思自在 : 對父母要知恩,感恩、報恩。
返回列表 上一主題