[算表] VBA讀取CSV檔,動態陣列大小問題

看板Office作者時間6年前 (2019/07/26 09:00), 6年前編輯推噓1(109)
留言10則, 3人參與, 6年前最新討論串1/1
軟體:EXCEL 版本:2010 您好 我用VBA讀取一個不特定大小的CSV檔,我的想法是 1、開啟對話視窗,由使用者點選讀入檔案 2、紀錄檔案位置的路徑 3、OPEN該檔案並讀入2維陣列 Sub 讀資料() Application.FileDialog(msoFileDialogFilePicker).Show spath = Application.FileDialog(msoFileDialogFilePicker).SelectedItems(1) Open spath For Input As #1 Do Until EOF(1) Line Input #1, INPUTDATA End Sub 遇到的問題是: 讀入的CSV檔案大小不是固定的,只知道是用","分隔 所以我必須要先確認讀入的CSV檔案大小(也就是行數及列數) 我才有辦法去宣告2維陣列的大小 然後在一行一行的將資料讀入2維陣列中 但是上面程式的寫法並沒有宣告2維陣列大小,僅是將其當一個變數 隨著每行一直增加,其值一直被覆蓋 請問我該怎麼解決呢 感謝回復 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 117.56.73.248 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1564102842.A.33E.html ※ 編輯: genow (117.56.73.248 臺灣), 07/26/2019 09:03:04

07/26 09:21, 6年前 , 1F
確認csv行數,可google excel vba count number of lines
07/26 09:21, 1F

07/26 09:21, 6年前 , 2F
in a csv
07/26 09:21, 2F

07/26 09:23, 6年前 , 3F
或是要讀入到變數,也可goole excel vba read csv into
07/26 09:23, 3F

07/26 09:23, 6年前 , 4F
array
07/26 09:23, 4F

07/26 09:30, 6年前 , 5F
謝謝 我來嘗試看看
07/26 09:30, 5F

07/26 09:31, 6年前 , 6F
以內文來調整的話1.可宣告一個較大個數的陣列變數,再迴圈
07/26 09:31, 6F

07/26 09:32, 6年前 , 7F
內也設個累加變數(變數=變數+1)的方式寫入
07/26 09:32, 7F

07/26 09:33, 6年前 , 8F
2.不設固定的陣列變數的話,可以redim preserve來動態調整
07/26 09:33, 8F

07/26 09:34, 6年前 , 9F
另外內文的巨集會有錯誤,有do沒有loop
07/26 09:34, 9F

07/26 10:52, 6年前 , 10F
用一個暫存工作表去存,不用考慮陣列大小
07/26 10:52, 10F
文章代碼(AID): #1TEb2wC- (Office)
文章代碼(AID): #1TEb2wC- (Office)