使用Excel VBA在单元格中的某些文本周围插入方括号

有没有可能在excel VBA代码的单元格中的某些文本周围插入方括号?

它需要在第一个逗号之前find文本,如果在第一个逗号之前没有方括号,用[]方括号

单元格A中的文本是这种格式。 这全都在一个单一的文本string中

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处理,因为可能有成千上万的行

有了这样的数据:

在这里输入图像说明

运行这个小macros:

 Sub bracket() Dim r As Range, N As Long, s As String Dim i As Long N = Cells(Rows.Count, "A").End(xlUp).Row For i = 1 To N ary = Split(Cells(i, 1).Text, ",") If Left(ary(0), 1) = "[" Then Else ary(0) = "[" & ary(0) & "]" Cells(i, 1).Value = Join(ary, ",") End If Next i End Sub 

会产生:

在这里输入图像说明

编辑#1:

为了使原始代码适应列E中的数据,我们需要更改3行代码:

 Sub bracket() Dim r As Range, N As Long, s As String Dim i As Long N = Cells(Rows.Count, "E").End(xlUp).Row For i = 1 To N ary = Split(Cells(i, 5).Text, ",") If Left(ary(0), 1) = "[" Then Else ary(0) = "[" & ary(0) & "]" Cells(i, 5).Value = Join(ary, ",") End If Next i End Sub 

这是因为Cells(13,1)指单元A13Cells(13,5)指单元E13