如果前面没有逗号,如何在空格字符处拆分字符串

MK0*_*000 0 excel vba

我正在寻找一种在空格字符处拆分文本的方法,但前提是空格字符前面没有逗号。下面是一些字符串的例子

P3, 367 P5, 367 P5, 367

或者

P3 P5 P5

或者

P3, A6, A7 P4 P5 等等...

将它们在空白字符处拆分如下

arr = VBA.Split(ActiveCell.Value, " ")
Run Code Online (Sandbox Code Playgroud)

期望的结果如下:

[ P3, 367 P5, 367 P5, 367]

或者

[ P3 P5 P5]

或者

[ P3, A6, A7 P4 P5] 等...

Pᴇʜ*_*Pᴇʜ 5

快速解决方法

", "字符串中不存在的特殊内容替换所有内容,例如#转义您", "想要防止拆分的内容。所以

P3, 367 P5, 367 P5, 367
Run Code Online (Sandbox Code Playgroud)

变成

P3#367 P5#367 P5#367
Run Code Online (Sandbox Code Playgroud)

然后用其他独特的东西替换空格,例如%,它变成

P3#367%P5#367%P5#367
Run Code Online (Sandbox Code Playgroud)

然后将#backe的第一次替换恢复到原来的状态,", "这样你就得到了

P3, 367%P5, 367%P5, 367
Run Code Online (Sandbox Code Playgroud)

并分裂%得到

P3, 367
P5, 367
P5, 367
Run Code Online (Sandbox Code Playgroud)

或者

研究如何在 VBA 中使用正则表达式:How to use Regular Expressions (Regex) in Microsoft Excel both in-cell and loops