GBA 發問時間: 商業與財經投資 · 7 年前

是否能使用VBA 將 檔案名稱名稱 不同的CSV 匯入同一個

是否能使用VBA 將 檔案名稱名稱 不同的CSV 匯入同一個 EXCEL的SHEET中

(將一年的資料存在一個SHHEET)

1.因為是股市的開盤日 所以CSV檔名以日期命名 所以會跳過星期六 日(所以日期不會連續)

EX

D.20140611.csv

D.20140612.csv

D.20140613.csv

D.20140616.csv (格式會跳過星期六日 與假日)

2.有8000多筆

3.請高手幫我一下 告知我VBA 寫法

4.有些日期內容有代碼 但是沒有資料(當天沒有成交 或是股票還沒上市)

格式如下

----------------------------------------------------------

代碼名稱日期 開 高低 收 高跌停 量 低漲停 融資 融券 券資比 股本

1101台 泥2014061644.8545.0544.744.75.F.5936.F.69082613.78369.22

1102亞 泥2014061636.939.7536.939.5.F.6230.F.18301166.34329.55

1 個解答

評分
  • 最佳解答

    不太懂您的意思,就字面上簡單來說

    您需要的應該是

    會有所有的股價代號

    然後利用股價代號去反查這些股票的歷史價格對吧?

    如果是我上述說的話

    首先您需要一個工作表用來儲存股票代號

    利用迴圈的方式ex:

    dim a,i as Integer

    a=1

    i=2

    while a <> 0

    if worksheets("Sheet1").Range("A"& i)<>empty then

    Worksheets("Sheet1").Range("A" & i).Select

    Selection.Copy

    Worksheets("Sheet2").Select

    Worksheets("Sheet2").Range("A1").Select

    ActiveSheet.Paste

    以上呢,是把工作表1"A" i 的代號放在 工作表二的A1當中

    隨著您工作表1的欄位的不同就能存放不同的代號

    ex:A1=1101,A2=1102 ,i就是迴圈變數可以一直新增下去

    第二步驟

    您有了股票代號,就可以去查他的歷史股價

    http://blog.xuite.net/wang_2330/wretch/134694588

    此網址裡面左邊有一個簡單利用excel下載歷史股價

    基本上呢就照著貼就差不多了~

    只不過我會先新增一個欄位叫做Number ,這個欄為是用來存放股價代號的

    不過在那之前,您必須先把您的股票市場做分割(上市為.tw上櫃為.two)

    第三步驟

    建立股價資料庫

    根據上述兩步可以知道第一個工作表為股票迴圈,第二個工作表開始是存放個股票的資料庫

    那麼第三步驟就是依照您說的將每支股票放在不同的工作表上面,也就是新增一隻股票,就會多一個工作表

    那麼程式碼如下

    Set bb = Worksheets.Add

    Worksheets(i).Name =worksheets("Sheet1").Range("A"& i)

    整理一下您的步驟為

    1.找出所有您要的股票代號代碼並給予市場分割

    2.利用i迴圈複製代碼並建立資料表,並以股票代號做為命名

    3.將新的資料表A1(股票代號)、A2(開始時間)、A3(結束時間)、A4(市場)給予參數,A1、A4的參數來自於工作表1的代號與市場

    4.利用上述網址下載歷史股票

    最後呢 在給他一個 endif 、 wend結束判斷與迴圈結束,資料庫建立就大功告成了~

    但市上述網址並沒有 融資、融券、券資比、股本大小

    因為不能打太多,也部知道您到底是想要如何製作您的excel,因此大略告訴您方法,很多種可以變通,因此就沒有附上程式碼,若有問題可再提問

    2014-06-30 05:21:01 補充:

    可以邊做邊用F8檢視一下,其實並不難,只要您有一點點的程式基礎,撰寫很容易的

    至於您上面說的csv是指當日股票會跳過假日,並非每日csv? 若是純粹的歷史股價跳過假日,那麼上述網址的確做的到~若您真的非常想要資券比也加入的話

    那麼您必須在巨集裡面寫上另一個功能,匯入外部網站資料

    http://goodinfo.tw/StockInfo/ShowBearishChart.asp?...

    然後選取您要的表格,匯入到excel即可

    2014-06-30 05:24:55 補充:

    上述網站的ID=1101,您只要指定成工作表1的代號變動,1101也跟著變動

    例如

    "URL;http://goodinfo.tw/StockInfo/ShowBearishChart.asp?... & Worksheets("Sheet1").Range("A" & i).Value & "&CHT_CAT=DATE

    ", Destination:=Worksheets("1101").Range( _

    "C1"))

還有問題?馬上發問,尋求解答。