【发布时间】:2016-08-26 03:28:39
【问题描述】:
是否可以在没有 Excel VBA 代码的单元格中的某些文本周围插入方括号?
它需要找到第一个逗号之前的文本,如果第一个逗号之前没有方括号,则用[]方括号括起来
单元格 A 中的文本就是这种格式。全部在一个文本字符串中
A12345, blah, blah, blah, blah blah
[B45678], blah, blah, blah, blah blah
C97665, blah, blah, blah, blah blah
D89798, blah, blah, blah, blah blah
[B97494], blah, blah, blah, blah blah
Y34987, blah, blah, blah, blah blah
我需要运行它进入
[A12345], blah, blah, blah, blah blah
[B45678], blah, blah, blah, blah blah
[C97665], blah, blah, blah, blah blah
[D89798], blah, blah, blah, blah blah
[B97494], blah, blah, blah, blah blah
[Y34987], blah, blah, blah, blah blah
我没有 VBA 知识,但认为最好使用 VBA 处理,因为可能有数千行
【问题讨论】:
-
这绝对是可能的......我会说看看
InStr函数exceltrick.com/formulas_macros/vba-instr-function寻找第一个逗号,然后查看字符串的第一个字母......试一试,如果遇到困难,请将一些代码作为新问题发布,其中包含您要解决的特定问题。 -
老实说,您甚至可以使用 Excel 公式轻松管理它。
-
我会使用空格作为分隔符,然后在新值之间添加列并在文本周围放置“[”和“]”,然后将这些值连接在一起。
-
我能算出的最接近的公式是:=IF(ISERROR(MID($A2,FIND("[",$A2)*1,FIND("]",$A2)-FIND ("[",$A2)+1)),"["&LEFT(A2,6)&"]",IF(ISERROR(LEFT($A2,FIND("@@@",SUBSTITUTE($A2," ,","@@@",1))-1)),"无代码",LEFT($A2,FIND("@@@",SUBSTITUTE($A2,",","@@@", 1))-1)))。但是它不排除没有逗号的文本,因为它仍然用括号括起来