Board logo

標題: [ 發問 ] 修改 vba 只讀取 csv 部分欄位 [打印本頁]

作者: yurckr    時間: 2016-8-1 18:02     標題: [ 發問 ] 修改 vba 只讀取 csv 部分欄位

以下是從網上抓的 一段代碼讀取csv文件
csv文件是從yahoo finance 找的那種格式
但是以下的代碼會把全部欄位與資料讀進陣列內

希望能改成以下方式

1.只把 date  日期欄位讀入陣列
2.讀取 date資料後,先轉換格式再存入陣列 (原始格式為 2016-07-27 希望能變成 2016/07/28)

請教高手如何修改 謝謝

Sub cmdGo_Click()

Dim file_name As String
Dim fnum As Integer
Dim whole_file As String
Dim lines As Variant
Dim one_line As Variant
Dim num_rows As Long
Dim num_cols As Long
Dim the_array() As String
Dim R As Long
Dim C As Long

    file_name = ThisWorkbook.Path
   
    If Right$(file_name, 1) <> "\" Then file_name = _
        file_name & "\"
    file_name = file_name & "test.csv"
    ' Load the file.
    fnum = FreeFile
    Open file_name For Input As fnum
    whole_file = Input$(LOF(fnum), #fnum)
    Close fnum

    ' Break the file into lines.
    lines = Split(whole_file, vbCrLf)

    ' Dimension the array.
    num_rows = UBound(lines)
    one_line = Split(lines(0), ",")
    num_cols = UBound(one_line)
    ReDim the_array(num_rows, num_cols)
   

    ' Copy the data into the array.
   
    For R = 0 To num_rows
        If Len(lines(R)) > 0 Then
            one_line = Split(lines(R), ",")
            For C = 0 To num_cols
            the_array(R, C) = one_line(C)
            Next C
        End If
    Next R

    ' Prove we have the data loaded.
    For R = 0 To num_rows
        For C = 0 To num_cols
            MsgBox the_array(R, C) & "|"
            
        Next C
        Debug.Print
    Next R
    Debug.Print "======="
      End Sub
作者: yurckr    時間: 2016-8-2 12:27

回復 1# yurckr

自問自答,已經發現資料排列的規律,用陣列取出日期列
但又有問題,
1.csv 如何得知日期有幾筆資料?
2.如何找出 csv 內 最小日期為何?




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)