返回列表 上一主題 發帖

[發問] 網頁資料下載簡化

本帖最後由 carzyindex 於 2011-5-16 16:32 編輯

回復 10# GBKEE


想再次詢問版大兩個問題

1.   附件test
我想要依照sheet2清單 A欄
執行程式
另存新檔   檔名為B欄

2.   附件1101
程式有時候後會有錯誤
F欄位篩選為空格
可以刪除嗎

test.rar (11.34 KB)

1101.rar (116.77 KB)

TOP

回復 12# carzyindex
下載一支股票要將近10分鐘 , 我沒測試完,請你慢慢測試 .
  1. Option Explicit
  2. Sub 明細下載()
  3.     Dim 股票代號 As Range, 日期 As Variant, i As Integer, A, T As Date
  4.     Dim Rng As Range
  5.     Do While Not IsDate(日期)
  6.         日期 = InputBox("輸入查詢日期", "日期", Date)
  7.         If 日期 = "" Then End
  8.     Loop
  9.     日期 = Format(日期, "yyyymmdd")
  10.     Set 股票代號 = Workbooks("TEST.XLSX").Sheets("sheet2").[A1]
  11.     Do While 股票代號.Value <> ""
  12.         T = Time
  13.         With Workbooks("TEST.XLSX").Sheets.Add(After:=Sheets(Sheets.Count))
  14.             .Name = 日期 & "-" & 股票代號     '設立 在工作表名稱
  15.             Application.StatusBar = False
  16.             On Error GoTo A_Wait
  17.             i = 1
  18.             Do
  19.                 Set Rng = .Cells(Rows.Count, 1).End(xlUp).Offset(1)
  20.                 DoEvents
  21.                 With .QueryTables.Add(Connection:="URL;http://bsr.twse.com.tw/bshtm/bshtm_report_Messages.aspx?strDate=" & 日期 & "&StartNumber=" & 股票代號 & "&FocusIndex=" & i, Destination:=Rng)
  22.                     .Name = 日期 & "_" & 股票代號 & "_" & i
  23.                     .WebSelectionType = xlSpecifiedTables
  24.                     .WebFormatting = xlWebFormattingNone
  25.                     .WebTables = "6"
  26.                     .WebPreFormattedTextToColumns = True
  27.                     .WebConsecutiveDelimitersAsOne = True
  28.                     .WebSingleBlockTextImport = False
  29.                     .WebDisableDateRecognition = False
  30.                     .WebDisableRedirections = False
  31.                 ''''''無法查詢時稍待  到  A_Wait: '''''
  32.                     .Refresh BackgroundQuery:=False
  33.                     If Application.CountA(.ResultRange) = 0 Then GoTo Out
  34.                         i = i + 1
  35.                 End With
  36.                 A = CreateObject("WScript.Shell").popup("請等後下載..." & Chr(10) & Chr(10) & "** 請勿按下  [確定] **", 4, 日期 & "_" & 股票代號 & "  第" & i & "頁", 16 * 3 + 0)
  37.                 Application.ScreenUpdating = True
  38.             Loop
  39.             
  40. Out:
  41.             .UsedRange.Columns.AutoFit
  42.             ''''''''刪除 A,F欄的空格  ''''''''''''''''''''''''''''''''
  43.             .Range(.Cells(Rows.Count, "B").End(xlUp).Offset(1), .Cells(Rows.Count, "B")).Offset(, -1).Clear
  44.             .Range(.Cells(Rows.Count, "G").End(xlUp).Offset(1), .Cells(Rows.Count, "G")).Offset(, -1).Clear
  45.             '''''''''''''''''''''''''''''''''''''''
  46.             A = CreateObject("WScript.Shell").popup("共下載" & i & "頁", 5, 日期 & "_" & 股票代號, 48 + 0)
  47.             Application.StatusBar = 股票代號 & " 共下載 " & i & "頁 費時 " & Format(Time - T, "HH:MM:SS")
  48.         End With
  49.         Set 股票代號 = 股票代號.Offset(1)
  50.     Loop
  51.     End
  52. A_Wait:
  53.     Application.StatusBar = "無法查詢等候10秒鐘"   '網頁繁忙時程式會有錯誤
  54.     Application.Wait Now + TimeValue("00:00:10")  '可增加等候查詢的秒數
  55.     Err.Clear
  56.     Application.StatusBar = False
  57.     Resume    '重返查詢
  58. End Sub
複製代碼

TOP

diabo

TOP

本帖最後由 carzyindex 於 2011-5-17 08:28 編輯

回復 14# diabo


非常感謝您在次相助

不過在下載前需要知道總頁數

但是這方面的應用還不是很熟稔

還是需要兩位的幫忙

還有時間日期為首頁      就不需要一直輸入了

http://bsr.twse.com.tw/bshtm/

右上角

TOP

回復 15# carzyindex
有此網頁好辦些,但下載還是很費時的,慢慢的測試吧!!



測試.rar (17.46 KB)

TOP

回復  diabo

非常感謝您在次相助

不過在下載前需要知道總頁數

但是這方面的應用還不是很熟稔

還是需要兩位的幫忙

還有時間日期為首頁      就不需要一直輸入了

http://bsr.twse.com.tw/bshtm/

右上角 ...
carzyindex 發表於 2011-5-17 08:21


1. 蒐集資料只是籌碼分析的第一步,你應該是希望一次能下載指定日期區間及所有上市櫃公司的歷史資料。
2. 建立個股籌碼分析,至少要用 ACCESS(*.mdb) 方式來儲存,一個資料表就可以解決所有問題。不論享分析個股在某段期間的籌碼變化或是某家券商的下單量.....等等,都可以輕易解決。前提是熟悉 SQL 語法。
3. 如果你的目的是投資,建議花錢買系統比較快。如果你的目的是學程式,可能還要需要下很多功夫。
4. 另外頁數在建資料庫其實沒用。
diabo

TOP

回復 16# GBKEE


    感謝兩位的幫忙

   正在學習資料庫,

想請問檔案儲存方式

分頁這麼多也不是辦法

還是建立日期資料夾

各股分別建立檔案呢

對資料庫來說  該怎麼管理檔案

該存成csv檔嗎

TOP

回復 17# diabo


    如1  2點所說

我是藉由這樣的資料

學習資料庫

頁數的事情是我忘記翻到第一頁去看

的確不重要

網路上的資料庫多半是人員名單  關聯學習   看起來和excel差距不大

但是對於時間的範例就找不太到

像是每天的物料變化和籌碼變化   天天都改變才能真在體現資料庫的偉大和強大

感謝兩位撥冗回覆

TOP

回復  diabo


    如1  2點所說

我是藉由這樣的資料

學習資料庫

頁數的事情是我忘記翻到第一 ...
carzyindex 發表於 2011-5-18 08:42



最起碼要做到像這樣子,才能分析.....

測試2.rar (50.55 KB)
diabo

TOP

如果要做籌碼分析 證交所因該有提供三大法人個股每天買賣超資料
http://www.twse.com.tw/ch/trading/fund/TWT43U/TWT43U.php
提供給你參考 資料下載這部分 真的很困難...因為他有些以脫離VBA
有些網頁不是那麼有善 所以要會些html的語法
不過你也可以試著用 ctrl c + ctrl v 方式 把整個網頁複製到excel 在去抓你要的

^^ 祝你好運囉
GinBow

TOP

        靜思自在 : 為人處世要小心細心,但不要「小心眼」。
返回列表 上一主題