標題:
[發問]
上市股票融資融券餘額CSV下載問題
[打印本頁]
作者:
pupai
時間:
2014-8-12 12:05
標題:
上市股票融資融券餘額CSV下載問題
您好
我想用VBA下載網站的每天"融資融券彙總(大盤統計資訊)"
http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/genpage/Report201408/A11220140811_1.php?select2=&chk_date=103/08/11
請問他的URL是什麼
或者有什麼可以讓我參考的資料
請指導
謝謝!!
作者:
GBKEE
時間:
2014-8-12 16:12
本帖最後由 GBKEE 於 2014-8-12 17:25 編輯
回復
1#
pupai
20140811
指定的日期
http://www.twse.com.tw/ch/tradin ... A11220140811_1.php?
value=''>全部 (大盤統計資訊) 是錯誤的 需改為 value='
_1
'>全部
http://www.twse.com.tw/ch/tradin ... A11220140811MS.php?
value='MS'>信用交易統計
http://www.twse.com.tw/ch/tradin ... 2201408110099P.php?
value='0099P'>ETF
http://www.twse.com.tw/ch/tradin ... A1122014081101.php?
value='01'>水泥工業
value='02'>食品工業
value='22'>生技醫療業
......
網頁原始文件,分類項目 的 value
<option value='MS'>信用交易統計</option><option selected value=''>全部</option><option value='0049'>封閉式基金</option><option value='0099P'>ETF</option><option value='019919T'>受益證券</option><option value='0999'>認購權證</option><option value='0999P'>認售權證</option><option value='01'>水泥工業</option><option value='02'>食品工業</option><option value='03'>塑膠工業</option><option value='04'>紡織纖維</option><option value='05'>電機機械</option><option value='06'>電器電纜</option><option value='07'>化學生技醫療</option><option value='21'>化學工業</option><option value='22'>生技醫療業</option><option value='08'>玻璃陶瓷</option><option value='09'>造紙工業</option><option value='10'>鋼鐵工業</option><option value='11'>橡膠工業</option><option value='12'>汽車工業</option><option value='13'>電子工業</option><option value='24'>半導體業</option><option value='25'>電腦及週邊設備業</option><option value='26'>光電業</option><option value='27'>通信網路業</option><option value='28'>電子零組件業</option><option value='29'>電子通路業</option><option value='30'>資訊服務業</option><option value='31'>其他電子業</option><option value='14'>建材營造</option><option value='15'>航運業</option><option value='16'>觀光事業</option><option value='17'>金融保險</option><option value='18'>貿易百貨</option><option value='23'>油電燃氣業</option><option value='9299'>存託憑證</option><option value='19'>綜合</option><option value='20'>其他</option><option value='CB'>可轉換公司債</option>
複製代碼
作者:
pupai
時間:
2014-8-12 17:20
回復
2#
GBKEE
版主您好
我寫的東西有點行不通
請幫我看看修改
謝謝
Sub 上櫃()
Theurl = "http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/genpage/Report201408/A11220140811_1.php"
With Workbooks.Open(Theurl)
AR = .Sheets(1).UsedRange
.Close False
End With
With ActiveSheet
Range("B:U").Select
Selection.ClearContents
'.UsedRange.Clear 全部清除
.Range("B2").Resize(UBound(AR, 1), UBound(AR, 2)) = AR
End With
End Sub
複製代碼
作者:
GBKEE
時間:
2014-8-12 17:45
回復
3#
pupai
試試看 用web查詢
Option Explicit
Sub Ex()
With ActiveSheet
If .QueryTables.Count = 0 Then
With .QueryTables.Add("URL;about:Tabs", .[A1])
.Refresh BackgroundQuery:=False
End With
End If
With .QueryTables(1)
'全部下載久一點
.Connection = "URL;http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/genpage/Report201408/A11220140811_1.php"
'.Connection = "URL;http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/genpage/Report201408/A11220140811MS.php?"
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "10"
'這全部的要用 .WebTables = "10"
'其他項目的要用 .WebTables = "8"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End With
End Sub
複製代碼
作者:
pupai
時間:
2014-8-13 09:42
回復
4#
GBKEE
感恩版主的回覆
如果我要可以指定日期的查詢功能
請問我要如何呈現
謝謝!!
作者:
GBKEE
時間:
2014-8-13 09:54
回復
5#
pupai
http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/genpage/Report
201307
/A112
20130715
01.php
?
作者:
pupai
時間:
2014-8-13 12:20
回復
6#
GBKEE
版主
我只能寫這樣,但程式有錯
請幫我指導一下
謝謝!!
Sub EX()
Dim A As Date
Dim Sdate As Variant
A = Range("A1").Value
Sdate = Format(A, "E/MM/DD")
With ActiveSheet
If .QueryTables.Count = 0 Then
With .QueryTables.Add("URL;about:Tabs", .[B1])
.Refresh BackgroundQuery:=False
End With
End If
With .QueryTables(1)
'全部下載久一點
.Connection = "URL;http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/genpage/Report=" & Sdate / A112 = " & Sdate_1.php"
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "10"
'這全部的要用 .WebTables = "10"
'其他項目的要用 .WebTables = "8"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End With
End Sub
複製代碼
作者:
GBKEE
時間:
2014-8-13 13:02
回復
7#
pupai
試試看
Option Explicit
Sub EX()
Dim A As Date
Dim Rep_Ym As String
Dim Rep_Day As String
Range("A1") = "2011/12/20" '示範的日期
A = Range("A1").Value
Rep_Ym = Format(A, "yyyyMM")
Rep_Day = Format(A, "yyyyMMDD")
With ActiveSheet
If .QueryTables.Count = 0 Then
With .QueryTables.Add("URL;about:Tabs", .[B1])
.Refresh BackgroundQuery:=False
End With
End If
With .QueryTables(1)
'全部下載久一點
.Connection = "URL;http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/genpage/Report" & Rep_Ym & "/A112" & Rep_Day & "_1.php"
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "10"
'這全部的要用 .WebTables = "10"
'其他項目的要用 .WebTables = "8"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End With
End Sub
複製代碼
作者:
pupai
時間:
2014-8-13 13:25
回復
8#
GBKEE
版主感恩
謝謝
作者:
pupai
時間:
2014-8-13 17:26
回復
8#
GBKEE
請問版主
這個程式為什麼不可以用巨集啟動
就像 Application.Run "工作表1.EX" 這一種方法
會出現執行階段錯誤"1004":
Run方法('Application'物件)失敗
但是如果單獨用F8程式又OK
作者:
pupai
時間:
2014-8-14 08:03
回復
8#
GBKEE
坂大
是我的問題
我昨晚熬夜找到問題 解決了
謝謝你的幫忙
作者:
hipper68
時間:
2015-8-13 23:22
回復
2#
GBKEE
請教版大 和各位大大..
這兩天發現原來抓融資融卷餘額 url 不能用了...
原來的: (以 2015/8/12為例)
http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/genpage/Report201508/A11220150812MS.php?select2=MS&chk_date=104/08/12
可以取得 "信用交易統計"這類的資料
但這兩天這個url 會找不到 A11220150812MS.php
但是如果將 "MS" 改成 "01" (融資融券彙總(水泥工業)), 也就是
http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/genpage/Report201508/A1122015081201.php?select2=MS&chk_date=104/08/12
則可以正確取得水泥類股的資料.
請問各位大大,該用哪種 url 取得 "信用交易統計" 這類的資料..
Thanks..
作者:
joey0415
時間:
2015-8-14 21:08
回復
12#
hipper68
你試試看,應該可行!
Sub ex()
With CreateObject("internetexplorer.application")
.Visible = True
.Navigate "http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/MI_MARGN.php"
Do Until .ReadyState = 4
DoEvents
Loop
.Document.getElementById("date-field").Value = "104/08/12" '填入
'---------,內建的fireevent 的onchange失效,改用調用js的方法--------
Set evt = .Document.createEvent("HTMLEvents")
evt.initEvent "change", True, False
Set lst = .Document.all("selectType") 'option的name是selectType,但getElementsByName無法處理,要all才行
lst.selectedIndex = 0
lst.dispatchEvent evt
.Document.all("query-button").Click
Do While .ReadyState <> 4 Or .Busy: DoEvents: Loop
Application.Wait Now + TimeValue("00:00:5")
' Stop
' For Z = 0 To 10
' MsgBox .Document.getElementsByTagName("table")(Z).innerText
' Next
Stop
Set hTable = .Document.getElementsByTagName("table")(3) '第4個table
' tt = hTable.Rows.Length
' qq = hTable.Rows(2).Cells.Length
With ActiveSheet
For i = 1 To hTable.Rows.Length - 1 '前3個是標題與空白跳過
For j = 0 To hTable.Rows(i).Cells.Length - 1
.Cells(i, j + 1) = hTable.Rows(i).Cells(j).innerText
Next
Next
End With
.Quit
' MsgBox "OK"
End With
End Sub
複製代碼
作者:
pupai
時間:
2015-8-27 08:54
回復 pupai
試試看
GBKEE 發表於 2014-8-13 13:02
請問版大
上述程式8/11前還可以使用
8/12後就不能用了
幫忙修正
謝謝
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)