我正在使用此代码(来自此处的同伴用户)查找列b1中的每个单元格,并找到包含“;”像“你好;再见”。代码将在“;”分隔单元格并把“再见”直接放在“你好”之下一个全新的行..excel中分割字符串(vba)
我现在需要的是这样的......如果单元格中包含多“;” (即“你好;再见;哟;你好;嘿”)它将分裂在每个“;”不只是第一个,然后每个移动到另一个下面的新行...
我需要做什么改变?
Dim r1 As Range, r2 As Range
Dim saItem() As String
For Each r1 In ActiveSheet.Range("B1", Cells(Application.Rows.Count, 2).End(xlUp))
If InStr(1, r1.Value2, ";") > 0 Then
saItem = Split(r1.Value2, ";")
r1 = Trim$(saItem(0)) & ";"
r1.Offset(1).EntireRow.Insert (xlDown)
r1.Offset(1) = Trim$(saItem(1))
End If
Next r1
您已经拥有它。它被分成'saItem'数组(注意你的代码已经检索到'saItem(0)'和'saItem(1)')。你所要做的就是迭代数组的元素,在每个元素上调用'Trim $'并将它们放入正确的行(就像你的代码已经为第一个元素所做的那样)。 –
如果您有答案,请将其放入答案框中,并将其从问题中删除,然后将其标记为答案。 – JimmyPena