返回列表 上一主題 發帖

[分享] 大盤每月每天歷史成交量與金額下載

本帖最後由 pupai 於 2013-9-19 16:06 編輯
回復  turbine
GBKEE 發表於 2012-10-2 10:52



    請教GBKEE版大
依照您的方式,如果網頁換成這一個 http://www.twse.com.tw/ch/trading/exchange/BWIBBU/BWIBBU.php
要如何修改呢

Option Explicit
Private Sub 大盤成交資訊()
    Dim xlTheYear As String, xlTheMonth As String, xlTheFile As String
    Dim Sh As Worksheet
    xlTheYear = Format(Range("C1"), "0000")  '修改字串格式
    xlTheMonth = Format(Range("C2"), "00")   '修改字串格式
    Set Sh = ThisWorkbook.Sheets.Add         '新增工作表
    Sh.Name = xlTheYear & "_" & xlTheMonth   '新增工作表命名
    xlTheFile = "http://www.twse.com.tw/ch/trading/exchange/FMTQIK/FMTQIK2.php?STK_NO=&myear=" & xlTheYear & "&mmon=" & xlTheMonth & "&type=csv"
    With Workbooks.Open(xlTheFile)
        .Sheets(1).UsedRange.Copy Sh.[a1]
        .Close 0
    End With
    Sh.Cells.EntireColumn.AutoFit            '調整欄寬
    Sh.Columns("A:A").ColumnWidth = 28.56
End Sub

TOP

回復 71# pupai
'http://www.twse.com.tw/ch/trading/exchange/BWIBBU/BWIBBU.php 這網址可下載檔案但不是csv檔,你可以試下載看看
你的網址少了 STK_NO (股票代號)
  1. xlTheFile = "http://www.twse.com.tw/ch/trading/exchange/FMTQIK/FMTQIK2.php?STK_NO=" & Stk_No & "&myear=" & xlTheYear & "&mmon=" & xlTheMonth & "&type=csv"
  2.     xlTheFile = "http://www.twse.com.tw/ch/trading/exchange/BWIBBU/BWIBBU.php?STK_NO=" & Stk_No & "&myear=" & xlTheYear & "&mmon=" & xlTheMonth
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 72# GBKEE
  1. Option Explicit
  2. Private Sub 大盤成交資訊()
  3.     Dim xlTheYear As String, xlTheMonth As String, STK_NO As String, xlTheFile As String
  4.     Dim Sh As Worksheet
  5.     xlTheYear = Format(Range("C1"), "0000")  '修改字串格式
  6.     xlTheMonth = Format(Range("C2"), "00")   '修改字串格式
  7.     STK_NO = Format(Range("C3"), "0000")  '修改字串格式
  8.     Set Sh = ThisWorkbook.Sheets.Add         '新增工作表
  9.     Sh.Name = xlTheYear & "_" & xlTheMonth   '新增工作表命名
  10.     xlTheFile = "http://www.twse.com.tw/ch/trading/exchange/FMTQIK/FMTQIK2.php?STK_NO=" & STK_NO & "&myear=" & xlTheYear & "&mmon=" & xlTheMonth & "&type=csv"
  11.     xlTheFile = "http://www.twse.com.tw/ch/trading/exchange/BWIBBU/BWIBBU.php?STK_NO=" & STK_NO & "&myear=" & xlTheYear & "&mmon=" & xlTheMonth
  12.     With Workbooks.Open(xlTheFile)
  13.         .Sheets(1).UsedRange.Copy Sh.[a1]
  14.         .Close 0
  15.     End With
  16.     Sh.Cells.EntireColumn.AutoFit            '調整欄寬
  17.     Sh.Columns("A:A").ColumnWidth = 28.56
  18. End Sub
複製代碼
版大
我定義了STK_NO(股票代碼)
可是跑不出來

TOP

本帖最後由 GBKEE 於 2013-9-19 20:58 編輯

回復 73# pupai
試試看
  1. Option Explicit
  2. Private Sub 大盤成交資訊()
  3.     Dim xlTheYear As String, xlTheMonth As String, STK_NO As String, xlTheFile As String, AR
  4.     Dim Sh As Worksheet
  5.     xlTheYear = Format(Range("C1"), "0000")  '修改字串格式
  6.     xlTheMonth = Format(Range("C2"), "00")   '修改字串格式
  7.     STK_NO = Format(Range("C3"), "0000")  '修改字串格式
  8.     Set Sh = ThisWorkbook.Sheets.Add         '新增工作表
  9.     Sh.Name = xlTheYear & "_" & xlTheMonth   '新增工作表命名
  10.     '******http://www.twse.com.tw/ch/trading/exchange/FMTQIK/FMTQIK2.php*****
  11.     'xlTheFile = "http://www.twse.com.tw/ch/trading/exchange/FMTQIK/FMTQIK2.php?STK_NO=" & STK_NO & "&myear=" & xlTheYear & "&mmon=" & xlTheMonth & "&type=csv"
  12.    
  13.      '******http://www.twse.com.tw/ch/trading/exchange/BWIBBU/BWIBBU.php*****
  14.      xlTheFile = "http://www.twse.com.tw/ch/trading/exchange/BWIBBU/BWIBBU.php?STK_NO=" & STK_NO & "&myear=" & xlTheYear & "&mmon=" & xlTheMonth
  15.     '**************************************************************
  16.     With Workbooks.Open(xlTheFile)
  17.         If InStr(xlTheFile, "BWIBBU") Then
  18.             AR = .Sheets(1).Range("b446").CurrentRegion 'http://www.twse.com.tw/ch/trading/exchange/BWIBBU/BWIBBU.php
  19.         Else
  20.             .Sheets(1).UsedRange.Copy Sh.[A1]
  21.          End If
  22.           .Close 0

  23.     End With
  24.     With Sh
  25.         If InStr(xlTheFile, "BWIBBU") Then .Range("A1").Resize(UBound(AR, 1), UBound(AR, 2)) = AR
  26.         .Cells.EntireColumn.AutoFit            '調整欄寬
  27.         .Columns("A:A").ColumnWidth = 28.56
  28.     End With
  29. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 74# GBKEE

G大
    可以了
改天再跟你請教
謝謝

TOP

G大,我是VBA新手,可以請教,如果查詢大盤,按了下載後會貼在原本的工作表內,如果是想貼在原本已經存在的工作表呢?比如該工作表名稱是"歷史資料",程式碼又該怎麼修改!謝謝!

TOP

回復 76# rinkenny
試試看
  1. Option Explicit
  2. Private Sub 大盤成交資訊()
  3.     Dim xlTheYear As String, xlTheMonth As String, STK_NO As String, xlTheFile As String,  Sh As Worksheet
  4.     With Sheets("Sheet1")
  5.         xlTheYear = Format(.Range("C1"), "0000")  '修改字串格式
  6.         xlTheMonth = Format(.Range("C2"), "00")   '修改字串格式
  7.         STK_NO = Format(.Range("C3"), "0000")  '修改字串格式
  8.     End With
  9.     ''''''''''''''''''''''''''''''''''''''''''''''''''''''
  10.     Set Sh = Workbooks("你指定的活頁簿").Sheets("歷史資料")
  11.     ''''''''''''''''''''''''''''''''''''''''''''''''''''''
  12.     '******http://www.twse.com.tw/ch/trading/exchange/FMTQIK/FMTQIK2.php*****
  13.     xlTheFile = "http://www.twse.com.tw/ch/trading/exchange/FMTQIK/FMTQIK2.php?STK_NO=" & STK_NO & "&myear=" & xlTheYear & "&mmon=" & xlTheMonth & "&type=csv"
  14.         With Workbooks.Open(xlTheFile)
  15.         .Sheets(1).UsedRange.Copy Sh.Range("A" & Rows.Count).End(xlUp).Offset(1) '接著A欄 複製下去
  16.         .Close 0
  17.     End With
  18. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

謝謝神人GB大,原來如此,感激GB大的分享

TOP

太棒了
非常感謝GBKEE大大的熱心分享

TOP

謝謝大大的分享,受益良多

TOP

        靜思自在 : 好事要提得起,是非要放得下,成就別人即是成就自己。
返回列表 上一主題