Visual_Basic 板


LINE

: 推 fumizuki:Excel XP 測試 Regular Expression無效@@ 01/06 21:34 : → MOONRAKER:啊?可是我這邊的程式是用Excel 2003跑出來的啊 01/06 22:11 : → MOONRAKER:馬上再測一遍,真的回家就沒效…那先前到底是怎麼弄的… 01/06 22:14 回憶起來一些細節,當時我曾想看ubound(segs)的值,怎麼看都是0 那時怎麼想也想不透,現在想通了,因為那時根本沒切出token 看來regex的寫法真的是沒效,我洨了,對不起大家 XD 回到正題,我一直不懂為什麼split()每兩個分隔符號之間就一定拆出一個子字串 就算長度0也照拆 所以碰到單字間有一個以上的空白,陣列裡就會有很多空字串 "" 我會這樣寫來跳過空字串: Sub abc() For i = 1 To 4 segs = Split(Cells(i, 1), " ") j = 0 ' j : 在下面的 for 中使用,用來查看結果陣列 segs x = 1 ' x : 現在抓到的非0元素是第幾個 For j = 0 To UBound(segs) If segs(j) <> "" Then ' 確定這一個元素不是空字串… x = x + 1 ' 才寫到工作表上 Cells(i, x) = segs(j) End If Next j Next i End Sub 我也不知道有什麼更好的方法 或者我用split() 的方法一直都不對?(所以下午才呆到以為真的可以用regex)   -- BATCH 03 : 買張床 - 切達大俠 - 伐木人之歌 - http://tinyurl.com/3zpyx5 [B4準備中]: 謳歌金錢(7/02) - 單車超人(7/23) - http://tinyurl.com/66v6vq [ 番外篇 ]: 包租婆也有過當羅莉的時候(7/17) - http://tinyurl.com/6j4ale ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ 蒙帝派松正體中文計畫 Spam-a-lot and enjoy the pythonesque delight! ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ https://www.youtube.com/user/JamesBondXD▄▄ --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.217.159.164
1F:推 fumizuki:我想Split()應該只是依照第2個參數給的字切割成陣列而已 01/07 07:26
2F:→ fumizuki:vb js c# 都沒聽說過split是regex 0.0 01/07 07:27
3F:→ fumizuki:本以為Filter()可以處理,不過測試的結果 空字串不能移除 01/07 07:28
4F:→ fumizuki:想要用Filter()移除陣列中空的元素,會傳回空陣列Or2 01/07 07:30
5F:→ fumizuki:不用vba,excel的資料剖析功能可以輕鬆做到 01/07 07:32
6F:推 Y78:Dim a As Variant 01/07 22:21
7F:→ Y78:a = Split("1.157 1255.2") 01/07 22:21
8F:→ Y78:ubound(a) = 1 , a(0)=1.157 a(1)=1255.2 01/07 22:21
9F:→ Y78:不是就這樣分而已嗎? 我沒試過vba不清楚 01/07 22:22
10F:→ Y78:Split第一個引數是字串 然後第二個引數是要分隔的字串 01/07 22:22
11F:→ Y78:第二個預設值是" " 就是以空白來分 然後會回傳一個陣列 01/07 22:23
12F:→ MOONRAKER:你兩個數字中間隔超過一個以上的空白試試看 01/08 10:30
13F:→ MOONRAKER:基本上以上討論的是這個問題 你才一個空白那隨便也會對 01/08 10:30
14F:推 Y78:如果空白數固定的話 把split第二個引數改掉就好了 01/08 22:14
15F:→ Y78:如果不是 那我會這樣寫 01/08 22:14
16F:推 Y78:str = "1.157 1255.2" 01/08 22:21
17F:→ Y78:x = Len(str) 01/08 22:22
18F:→ Y78:a = Split(str) 01/08 22:22
19F:→ Y78:str = Replace(str, " ", "") 01/08 22:22
20F:→ Y78:a(0) & a(x - Len(str)) 就是你要的了 01/08 22:22
21F:→ Y78:但是用Replace會把原字串取代 不想的話 可以這樣 01/08 22:23
22F:→ Y78:把後面那個改成 a(x - Len(Replace(str, " ", ""))) 01/08 22:23
23F:→ MOONRAKER:這也只有兩個才有效。 01/08 23:21
24F:→ MOONRAKER:限制條件太多的解,實在是一點意義也沒有 01/08 23:21
25F:→ MOONRAKER:試問你如何處理 k1 s1 k2 s2 ... k(n-1) s(n-1) kn 01/08 23:22
26F:→ MOONRAKER:n 不確定,k(i)為單字,s(i)為空白,全都不等長 01/08 23:23
27F:→ MOONRAKER:這你要怎麼處理?不巧real world中這種input滿地都是 01/08 23:24
28F:→ MOONRAKER:隨便找一篇空白不齊的英文文章就是了 01/08 23:24
29F:推 Y78:如果很多的話 就照你那招吧 我上面的解法純粹是針對只有2個的 01/08 23:26
30F:推 Y78:突然想到 其實不用那麼麻煩 第二個只要 a(ubound(a))就好了 01/09 22:26







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP