看板 Office 關於我們 聯絡資訊
軟體: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
soyoso: 確認csv行數,可google excel vba count number of lines 07/26 09:21
soyoso: in a csv 07/26 09:21
soyoso: 或是要讀入到變數,也可goole excel vba read csv into 07/26 09:23
soyoso: array 07/26 09:23
genow: 謝謝 我來嘗試看看 07/26 09:30
soyoso: 以內文來調整的話1.可宣告一個較大個數的陣列變數,再迴圈 07/26 09:31
soyoso: 內也設個累加變數(變數=變數+1)的方式寫入 07/26 09:32
soyoso: 2.不設固定的陣列變數的話,可以redim preserve來動態調整 07/26 09:33
soyoso: 另外內文的巨集會有錯誤,有do沒有loop 07/26 09:34
cutekid: 用一個暫存工作表去存,不用考慮陣列大小 07/26 10:52