返回列表 上一主題 發帖

[發問] 上市股票融資融券餘額CSV下載問題

[發問] 上市股票融資融券餘額CSV下載問題

您好
我想用VBA下載網站的每天"融資融券彙總(大盤統計資訊)"
http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/genpage/Report201408/A11220140811_1.php?select2=&chk_date=103/08/11

請問他的URL是什麼
或者有什麼可以讓我參考的資料
請指導
謝謝!!

回復  pupai
試試看
GBKEE 發表於 2014-8-13 13:02



    請問版大
上述程式8/11前還可以使用
8/12後就不能用了
幫忙修正
謝謝

TOP

回復 12# hipper68

你試試看,應該可行!
  1. Sub ex()

  2.     With CreateObject("internetexplorer.application")
  3.         .Visible = True
  4.         .Navigate "http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/MI_MARGN.php"
  5.         Do Until .ReadyState = 4
  6.             DoEvents
  7.         Loop
  8.         
  9.         .Document.getElementById("date-field").Value = "104/08/12" '填入
  10.          
  11.         '---------,內建的fireevent 的onchange失效,改用調用js的方法--------
  12.         Set evt = .Document.createEvent("HTMLEvents")
  13.         evt.initEvent "change", True, False
  14.         Set lst = .Document.all("selectType") 'option的name是selectType,但getElementsByName無法處理,要all才行
  15.         lst.selectedIndex = 0
  16.         lst.dispatchEvent evt
  17.    
  18.         .Document.all("query-button").Click


  19.          Do While .ReadyState <> 4 Or .Busy: DoEvents: Loop

  20.         Application.Wait Now + TimeValue("00:00:5")
  21. '        Stop
  22.         
  23. '        For Z = 0 To 10
  24. '        MsgBox .Document.getElementsByTagName("table")(Z).innerText
  25. '        Next
  26.             Stop
  27.         Set hTable = .Document.getElementsByTagName("table")(3) '第4個table
  28. '        tt = hTable.Rows.Length
  29. '        qq = hTable.Rows(2).Cells.Length

  30.             With ActiveSheet
  31.                 For i = 1 To hTable.Rows.Length - 1 '前3個是標題與空白跳過
  32.                     For j = 0 To hTable.Rows(i).Cells.Length - 1
  33.                         .Cells(i, j + 1) = hTable.Rows(i).Cells(j).innerText
  34.                     Next
  35.                 Next
  36.             End With

  37.         .Quit
  38. '        MsgBox "OK"
  39.     End With
  40.    
  41. End Sub
複製代碼

TOP

回復 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..

TOP

回復 8# GBKEE


    坂大
是我的問題
我昨晚熬夜找到問題 解決了
謝謝你的幫忙

TOP

回復 8# GBKEE


      請問版主
這個程式為什麼不可以用巨集啟動
就像 Application.Run "工作表1.EX" 這一種方法
會出現執行階段錯誤"1004":
Run方法('Application'物件)失敗
但是如果單獨用F8程式又OK

TOP

回復 8# GBKEE


    版主感恩
謝謝

TOP

回復 7# pupai
試試看
  1. Option Explicit
  2. Sub EX()
  3.   Dim A As Date
  4.   Dim Rep_Ym As String
  5.   Dim Rep_Day As String
  6.     Range("A1") = "2011/12/20"   '示範的日期
  7.     A = Range("A1").Value
  8.     Rep_Ym = Format(A, "yyyyMM")
  9.     Rep_Day = Format(A, "yyyyMMDD")
  10.      With ActiveSheet
  11.         If .QueryTables.Count = 0 Then
  12.             With .QueryTables.Add("URL;about:Tabs", .[B1])
  13.             .Refresh BackgroundQuery:=False
  14.             End With
  15.         End If
  16.         With .QueryTables(1)
  17.             '全部下載久一點
  18.             .Connection = "URL;http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/genpage/Report" & Rep_Ym & "/A112" & Rep_Day & "_1.php"
  19.             .WebSelectionType = xlSpecifiedTables
  20.             .WebFormatting = xlWebFormattingNone
  21.             .WebTables = "10"
  22.             '這全部的要用   .WebTables = "10"
  23.             '其他項目的要用 .WebTables = "8"
  24.             .WebPreFormattedTextToColumns = True
  25.             .WebConsecutiveDelimitersAsOne = True
  26.             .WebSingleBlockTextImport = False
  27.             .WebDisableDateRecognition = False
  28.             .WebDisableRedirections = False
  29.             .Refresh BackgroundQuery:=False
  30.         End With
  31.     End With
  32. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 6# GBKEE


    版主
我只能寫這樣,但程式有錯
請幫我指導一下
謝謝!!
  1. Sub EX()
  2.      
  3.   Dim A As Date
  4.   Dim Sdate As Variant
  5.   
  6.   
  7.     A = Range("A1").Value
  8.     Sdate = Format(A, "E/MM/DD")
  9.      
  10.      
  11.      With ActiveSheet
  12.         If .QueryTables.Count = 0 Then
  13.             With .QueryTables.Add("URL;about:Tabs", .[B1])
  14.             .Refresh BackgroundQuery:=False
  15.             End With
  16.         End If
  17.         With .QueryTables(1)
  18.             '全部下載久一點
  19.             .Connection = "URL;http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/genpage/Report=" & Sdate / A112 = " & Sdate_1.php"
  20.         
  21.            
  22.         
  23.             .WebSelectionType = xlSpecifiedTables
  24.             .WebFormatting = xlWebFormattingNone
  25.             .WebTables = "10"
  26.             '這全部的要用   .WebTables = "10"
  27.             '其他項目的要用 .WebTables = "8"
  28.             .WebPreFormattedTextToColumns = True
  29.             .WebConsecutiveDelimitersAsOne = True
  30.             .WebSingleBlockTextImport = False
  31.             .WebDisableDateRecognition = False
  32.             .WebDisableRedirections = False
  33.             .Refresh BackgroundQuery:=False
  34.         End With
  35.     End With
  36. End Sub
複製代碼

TOP

感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 犯錯出懺悔心,才能清淨無煩惱。
返回列表 上一主題