此代码搜索A列中的所有“ - ”,当它在单元格中找到该字符时,在下面添加一个新行:
Sub insertRow()
Dim c As Range
For Each c In Range("A:A")
If c.Value Like "*-*" Then
c.Offset(1, 0).EntireRow.Insert
End If
Next c
End Sub
我想在每个“ - ”下面插入一行。如果单元格中有三个“ - ”,我想在该行下面添加三行,并在每个“ - ”后放入文本。我怎样才能做到这一点?
例如为:
A栏:
STR1,STR2-STR3,STR4
STR5
STR6,STR7
STR8-STR9-str10
str11-
结果如下:
A栏:
STR1
STR2
STR3
STR4
STR5
STR6
STR7
STR8
STR9
str10
str11
任何人都可以帮助我吗?谢谢!
答案 0 :(得分:0)
像下面这样的东西应该工作 - 它依赖于数组基础0默认索引。如果执行时间是一个问题,可能有方法优化
Sub t_exe566965()
Dim r As Range
Dim a As Variant
For Each r In Range("A:A")
If r.Value Like "*-*" Then
Debug.Print True
a = Split(r.Value, "-")
r.Offset(1, 0).Resize(UBound(a)).EntireRow.Insert Shift:=xlDown
For i = LBound(a) To UBound(a)
r.Offset(i, 0).Value = a(i)
Next i
End If
Next r
End Sub