VBA POST 抓證交所 每日收盤行情(全部(不含權證、牛熊證)
- 帖子
- 1
- 主題
- 1
- 精華
- 0
- 積分
- 2
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- 2007
- 閱讀權限
- 10
- 性別
- 男
- 註冊時間
- 2015-1-27
- 最後登錄
- 2015-2-2
|
VBA POST 抓證交所 每日收盤行情(全部(不含權證、牛熊證)
試試看~有更好的方法請大家一起討論~
要有工作表 WW..並在 A1 上有日期如 2015/01/05
再建一個工作表 dd...
Sub XL()
Dim wt As Date
wt = Sheets("ww").Range("A1").Value
xt = Format(wt, "E/MM/DD")
gt = Format(wt, "E-MM-DD")
Set XML = CreateObject("Microsoft.XMLHTTP")
Set stream = CreateObject("ADODB.stream")
Dim path As String, thePOSTdata, URL
path = "C:\"
Set sh = Sheets("dd")
Sheets("dd").Activate
Worksheets("dd").UsedRange.Offset(0).Clear
URL = "http://www.twse.com.tw/ch/trading/exchange/MI_INDEX/MI_INDEX.php"
thePOSTdata = "download=csv&qdate=" & xt & "&selectType=ALLBUT0999"
XML.Open "POST", URL, 0
XML.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
XML.send thePOSTdata
With stream
.Open
.Type = 1
.write XML.responseBody
If Dir(path & "收盤" & gt & ".csv") <> "" Then Kill (path & "收盤" & gt & ".csv")
.SaveToFile (path & "收盤" & gt & ".csv")
.Close
End With
With Workbooks.Open(path & "收盤" & gt & ".csv")
.Sheets(1).UsedRange.Offset(117, 0).Copy sh.[a1]
.Close 0
End With
End Sub |
|
|
|
|
|
|
|
- 帖子
- 78
- 主題
- 30
- 精華
- 0
- 積分
- 109
- 點名
- 0
- 作業系統
- XP
- 軟體版本
- XP
- 閱讀權限
- 20
- 註冊時間
- 2014-5-15
- 最後登錄
- 2018-9-16

|
2#
發表於 2015-2-11 15:37
| 只看該作者
我也蠻想知道的
怎麼不用一個網頁有這些資料就好了 用網頁抓
真是 煩死了 |
|
|
|
|
|
|
|