Board logo

標題: 彙入證交所的資料無法更新 [打印本頁]

作者: lman    時間: 2010-7-24 17:09     標題: 彙入證交所的資料無法更新

這是證交所網址http://www.twse.com.tw/ch/trading/exchange/MI_INDEX/genpage/Report201007/A11220100723MS.php?
因已爬文一週還是無法解決
如匯入2010/7/19,再更新時,每次更新後仍是顯示2010/7/19的資料,而非當日,
是否可以在A1設定日期
然後再依日期更新
請高手指點,拜託!感恩!!
[attach]1956[/attach]
作者: GBKEE    時間: 2010-7-24 19:31

回復 1# lman
  1. Sub Ex()
  2.     With ActiveSheet.QueryTables(1)
  3.         .Connection = _
  4.         "URL;http://www.twse.com.tw/ch/trading/exchange/MI_INDEX/genpage/Report" & Format(ActiveSheet.[A1], "YYYYMM") & "/A112" & Format(ActiveSheet.[A1], "YYYYMMDD") & "MS.php?select2=MS&chk_date=" & Format(ActiveSheet.[A1], "EE/MM/DD")
  5.         .WebSelectionType = xlSpecifiedTables
  6.         .WebFormatting = xlWebFormattingNone
  7.         .WebTables = "8"
  8.         .WebPreFormattedTextToColumns = True
  9.         .WebConsecutiveDelimitersAsOne = True
  10.         .WebSingleBlockTextImport = False
  11.         .WebDisableDateRecognition = False
  12.         .WebDisableRedirections = False
  13.         .Refresh BackgroundQuery:=False
  14.     End With
  15. End Sub
複製代碼

作者: lman    時間: 2010-7-24 22:48

這就是專業
不得不服
非常感謝版主GBKEE
協助解決
作者: lman    時間: 2010-7-25 01:44

版主GBKEE大大
所寫程式可依日期匯入資料無誤
但是有一點很好奇提出問一下(因為我不懂)
程式碼內容沒有匯入資料存放的儲存格
為何放A3可以自動更新
如果資料剪下複製B3也可以自動更新
似乎會自動搜尋更新
如果是指定匯入資料存放的儲存格
那要如何修改
謝謝
作者: GBKEE    時間: 2010-7-25 17:57

回復 4# lman   
程式碼內容沒有匯入資料存放的儲存格
為何放A3可以自動更新


因為程式套上你附檔工作表中已有一個外部資料來源所傳回之資料的查詢表 並指定了網址
只要沒有刪除這查詢表 執行程式 就會更新資料
With  ActiveSheet.QueryTables(1)    '代表指定工作表中外部資料來源所傳回之資料的第一個查詢表
.Connection = _
        "URL;http://www.twse.com.tw/ch/trading/exchange/MI_INDEX/genpage/Report" & Format(ActiveSheet.[A1], "YYYYMM") & "/A112" & Format(ActiveSheet.[A1], "YYYYMMDD") & "MS.php?select2=MS&chk_date=" & Format(ActiveSheet.[A1], "EE/MM/DD")      '查詢表的網址
如果是指定匯入資料存放的儲存格
  1. Sub Ex()
  2. Dim Rng As Range, OldRng$
  3. Set Rng = ActiveSheet.[J1] '指定新的位址 且已指定日期
  4. On Error GoTo QueryTablesAdd
  5. With Rng.QueryTable
  6. .Connection = _
  7. "URL;http://www.twse.com.tw/ch/trading/exchange/MI_INDEX/genpage/Report" & Format(Rng, "YYYYMM") & "/A112" & Format(Rng, "YYYYMMDD") & "MS.php?select2=MS&chk_date=" & Format(Rng, "EE/MM/DD")
  8. .WebSelectionType = xlSpecifiedTables
  9. .WebFormatting = xlWebFormattingNone
  10. .WebTables = "8"
  11. .WebPreFormattedTextToColumns = True
  12. .WebConsecutiveDelimitersAsOne = True
  13. .WebSingleBlockTextImport = False
  14. .WebDisableDateRecognition = False
  15. .WebDisableRedirections = False
  16. .Refresh BackgroundQuery:=False
  17. End With
  18. End
  19. QueryTablesAdd:
  20. OldRng = Rng.Value
  21. Rng.Value = ""
  22. With ActiveSheet.QueryTables.Add(Connection:= _
  23. "URL;http://www.twse.com.tw/ch/trading/exchange/MI_INDEX/genpage/Report201007/A11220100723MS.php?select2=MS&chk_date=99/07/23", Destination:=Rng)
  24. .Name = "大盤統計資訊"
  25. .WebTables = "8"
  26. .Refresh BackgroundQuery:=False
  27. .ResultRange.ClearFormats
  28. End With
  29. Rng.Value = OldRng
  30. Resume
  31. End Sub
複製代碼

作者: lman    時間: 2010-7-25 18:42

科技始終來自人性
程式碼稍為修改
可讓執行呈現更簡易
謝謝      版主GBKEE
二則程式碼皆已收下研究中




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