標題:
台股月營收
[打印本頁]
作者:
ddhh4053
時間:
2012-7-3 13:26
標題:
台股月營收
請問有人分享要如何抓取公開資訊台股近6年全部月營收資料ㄇ
作者:
chen_cook
時間:
2012-7-4 05:26
[attach]11568[/attach]
回復
1#
ddhh4053
因說明很簡略,這是你要的嗎??[attach]11568[/attach]
作者:
chen_cook
時間:
2012-7-7 10:22
回復
3#
tsuneng
作者:
chen_cook
時間:
2012-7-7 12:43
回復
3#
tsuneng
Dim myWeb(3) As String
y$ = 101: m$ = 5 <---可修正抓取年月
myWeb(0) = "sii"
myWeb(1) = "otc"
myWeb(2) = "rotc"
myWeb(3) = "pub"
For i = 0 To 3
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://mops.twse.com.tw/t21/" & myWeb(i) & "/t21sc03_" & y$ & "_" & m$ & ".html", Destination:=Cells(1, 1))
'.Name = "zcx_" + stockCode$ + ".asp_5"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingAll
.WebTables = "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = True 'False
.Refresh BackgroundQuery:=False
End With
Ed = [J65535].End(xlUp).row
Range("A1:J" & Ed).Copy Worksheets("月營收").Cells(x + 2, 1)
x = Worksheets("月營收").[a65536].End(xlUp).row
Cells.Select
Selection.Delete Shift:=xlUp
Next i
'
End Sub
作者:
tsuneng
時間:
2012-7-7 15:09
回復
5#
chen_cook
謝謝大大的回應, TRY 大大公告的code 有不明白處 請教
1. y$ = 101: m$ = 5 <---可修正抓取年月 <==> 修改成 Syear = Year(Date) - 1911: Smon = Month(Date) - 1
"URL;http://mops.twse.com.tw/t21/" & myWeb(i) & "/t21sc03_" & Syear & "_" & Smon & ".html", Destination:=Cells(1, 1))
執行 程式後會在下行之處發生錯誤,(執行階段錯誤,陣列超出範圍)
Range("A1:J" & Ed).Copy Worksheets("月營收").Cells(x + 2, 1)
2, 要如何一次取得多月份的月營收資料
作者:
chen_cook
時間:
2012-7-7 15:42
回復
6#
tsuneng
Sub 月營收()
'
' Macro2 Macro
' SuperXP 在 2012/7/7 錄製的巨集
'
Dim myWeb(3) As String
myWeb(0) = "sii"
myWeb(1) = "otc"
myWeb(2) = "rotc"
myWeb(3) = "pub"
y$ = Range("B1"): m$ = Range("C1"): Ey$ = Range("D1"): Em$ = Range("E1") 'B1&C1 始年月 E1&D1 終年月
For Lp = 1 To (Ey$ - y$) * 12 - m$ + 1 + Em$
x = 0: Sheets.Add.Name = "sample": Sheets("sheet1").Select
For i = 0 To 3
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://mops.twse.com.tw/t21/" & myWeb(i) & "/t21sc03_" & y$ & "_" & m$ & ".html", Destination:=Cells(1, 1))
'.Name = "zcx_" + stockCode$ + ".asp_5"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingAll
.WebTables = "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = True 'False
.Refresh BackgroundQuery:=False
End With
Ed = [J65535].End(xlUp).row
Range("A1:J" & Ed).Copy Worksheets("sample").Cells(x + 2, 1)
x = Worksheets("sample").[a65536].End(xlUp).row
Cells.Select
Selection.Delete Shift:=xlUp
Next i
Sheets("sample").Name = "C" & y$ & m$
If m$ = 12 Then
y$ = y$ + 1
m$ = 1
Else
m$ = m$ + 1
End If
If Ey$ = y$ And Em$ < m$ Then
Exit For
End If
Next Lp
'
End Sub
作者:
chen_cook
時間:
2012-7-7 15:50
回復
6#
tsuneng
y$ = 101: m$ = 5 <---可修正抓取年月 <==> 修改成 Syear = Year(Date) - 1911: Smon = Month(Date) - 1
我的做法是 y$ = year(today())-1911: m$=month(today())
你沒有 sheets("月營收") 再先改SHEET NAME!!
連續抓的已通知你了...先用我的跑能出現資料後,等看懂了再自已改!!
作者:
devidlin
時間:
2012-7-29 23:05
回復
3#
chen_cook
你好,像2317鴻海相關的營收資料都沒有,是漏掉了嗎?
作者:
chen_cook
時間:
2012-7-30 05:13
回復
8#
devidlin
那這是什麼??
作者:
devidlin
時間:
2012-8-1 06:24
回復
9#
chen_cook
你好,小弟指的是這個檔案為何無2317鴻海的資料,謝謝。
作者:
diabo
時間:
2012-8-3 00:16
回復
10#
devidlin
公告每月營收為台灣特有的制度,屬「資訊揭露」,(目前) 合併營收為非強制項目,2317 雖有公告合併財報,但並沒有自願公告「合併營收」.....所以看不到....不過這跟Excel VBA無關
作者:
chen_cook
時間:
2012-8-3 05:01
回復
10#
devidlin
請找給你作法答覆的人吧!!我的方法是上面的巨集!!
作者:
tsuneng
時間:
2012-8-9 07:41
回復
7#
chen_cook
你好 ,個別月份可以用,謝謝!!
但是 連續抓 的COD中,我不明白下二列的語法, 如可以話請說明!!
y$ = Range("B1"): m$ = Range("C1"): Ey$ = Range("D1"): Em$ = Range("E1") 'B1&C1 始年月 E1&D1 終年月
x = 0: Sheets.Add.Name = "sample": Sheets("sheet1").Select
作者:
GBKEE
時間:
2012-8-9 08:17
回復
13#
tsuneng
: 是連接 下一個 程式碼 的符號
同
y$ = Range("B1")
m$ = Range("C1")
Ey$ = Range("D1")
Em$ = Range("E1") 'B1&C1 始年月 E1&D1 終年月
x = 0
Sheets.Add.Name = "sample"
Sheets("sheet1").Select
複製代碼
作者:
tsuneng
時間:
2012-8-9 11:03
回復
14#
GBKEE
謝謝GBKEE大大!!
明白你的說明, 修改後 RUN時會自動增加sheets("samlpe")及Sheets(sheet4).Sheets(sheet5).Sheets(sheet6).......
但是無法抓到資料,
會卡在 Sheets.Add.Name = "sample"
作者:
tsuneng
時間:
2012-8-10 11:49
回復
14#
GBKEE
謝謝 chen_cook & chen_cook 大大,
我己試OK ! 感恩!!
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)