使用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)
指单元A13 , Cells(13,5)
指单元E13 。