PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
Office
[算表] VBA 如何匯入資料本身包含逗號的csv檔?
作者:
foolkids
(翼をください)
2018-06-08 16:08:02
軟體:Office Excel VBA
版本:2010
原本是透過 Line Input將csv檔逐行讀入,並透過Split指令拆成陣列
但是現在的問題是來源資料本身包含逗號,導致Split指令出錯。
目前來源資料如下:
"aaaa","bbbb","cc,cc",1.23,0,"",500,"eee"
字串前後會有""夾住,數字不會有,有逗號的字串出現位置不定...
請問有前輩友好建議的嗎?
作者: soyoso (我是耀宗)
2018-06-08 17:52:00
因要分割的逗號前雙引號的個數為偶數如無合適的方法的話,可迴圈(逐字或逗號),判斷逗號前雙引號個數是否為偶數,是的話,置換其他分割字元。最後再以以新的分割字元來split
作者:
foolkids
(翼をください)
2018-06-08 17:59:00
謝謝SO大,可是資料筆數不少,不知道這樣會不會影響效能但是我還是會試試看,謝謝!
作者: soyoso (我是耀宗)
2018-06-08 22:13:00
覺得以迴圈和判斷是會影響的如不以迴圈判斷的話,也可以正規表示將,[0-9]和雙引號,取代逗號為其他分隔符號
作者:
foolkids
(翼をください)
2018-06-08 23:13:00
我有試著想要取代,但是逗號出現的位置沒有規律,所以不知道怎麼取代比較好。像是前後都是數字的逗號跟字串內的逗號其實就分不出來了
作者: soyoso (我是耀宗)
2018-06-08 23:20:00
回文的正規表示是可以將字串內的逗號排除的只針對,數字0-9或,"的部分來取代
作者:
foolkids
(翼をください)
2018-06-09 05:37:00
呃… 我想不出來怎麼取代,SO大可以解惑嗎? QQ
http://discuz.bestdaylong.com/thread-37799-1-1.html
是這個嗎?Pattern?
作者: soyoso (我是耀宗)
2018-06-09 09:32:00
類似該網頁,pattern內以括號包住條件可於取代以$1方式取出;需加上global為truepattern條件會是",([0-9""])";取代為";$1";split以";"
作者:
cancelpc
(阿吉)
2018-06-15 12:40:00
這個問題是一堆人都沒按照正常 csv 規範產檔。csv 規範中都有這些意外狀況的處理方式。隨便自己寫產出 csv 檔,遇到分隔符號有衝突,就自己亂訂分隔符號,甚至用多個字元當分隔符號。csv 規範中有提到資料裡有 , 時,該怎麼處理。有 " 引號時該怎麼處理。(當然分隔符號可以自訂,但至少規範中都有考慮到,只是遇到很多人只做半套,遇到問題就改定分隔符號,沒去處理。導致一些工具無法處理這些自訂的 csv 格式)
繼續閱讀
[算表] 多條件判定結果
meteor79510
[出售] Office 365 家用版 與 個人版 與 企業版
Taiwan641
[算表] excel的F4鍵有時不能用
vivienhung
[算表] 陣列排序問題(不要排序)
ptguitar
[問題] excel 2016 共同編輯
wt740217
Fw: [問題] win10新注音輸入到一半會自己enter
zura
[算表] 抓取數字轉國字大寫
ganjuro
[算表] excel 貼到word巨集問題
ptguitar
[問題]excel重複if的問題
qoop0624
[算表] 自動跨欄置中
bcs
Links
booklink
Contact Us: admin [ a t ] ucptt.com