使用excel从特定字符删除序列

时间:2012-03-09 22:30:41

标签: excel vba

我有6列和65000个单元格,大多数相同的后续对手; A1 =电气〜照明〜手电筒〜灯笼〜富尔顿〜防水 ...

F4 =电气〜照明〜手电筒〜灯笼〜富尔顿〜防水

我希望每一列分别包含“电气,照明,手电筒,灯笼,富尔顿,防水”,因此结果将是每列的每个名称。

谢谢

亚历

2 个答案:

答案 0 :(得分:3)

在VBA中,您可以使用Split()函数,但它不能用作工作表函数 否则,这已经在Excel中构建:菜单Data,选项Text to column 如果您需要对其进行编程,请使用录音机并在遇到问题时返回编程问题。

答案 1 :(得分:2)

这是使用VBA和双重转置数组的一种方法(一个非常好的技巧)。 UDPATE :无需双重转置数组(谢谢,JFC!)。固定代码。

Sub SplitEmUp()

Application.ScreenUpdating = False
Dim lastRow As Long
Dim cell As range
Dim items As Variant

lastRow = range("A" & Rows.count).End(xlUp).Row

For Each cell In range("A1:A" & lastRow)
    If InStr(cell, " ~ ") Then
        items = Split(cell, " ~ ")
        range(cell.Address).Resize(, UBound(items)).Value = items
    End If
Next

Application.ScreenUpdating = True
End Sub