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灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP