【发布时间】:2012-01-04 02:33:05
【问题描述】:
我目前正在使用此代码(来自其他用户)来查找 b1 列中的每个单元格并查找包含“;”的单元格比如“你好;再见”。代码将在“;”处拆分单元格并将“再见”直接放在“你好”下方;在一个全新的行上..
我现在需要的是...如果一个单元格包含 多个 ";" (即“你好;再见;哟;嗨;嘿”)它将在每个“;”处分裂不只是第一个,然后将每个移到另一个正下方的新行...
我需要做哪些改变?
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$并将它们放入正确的行(就像您的代码已经为第一个元素所做的那样)。 -
如果您有答案,请将其放入答案框中并从您的问题中删除,然后将其标记为答案。