删除/过滤 Microsoft Excel 2013 中的单元格内容

Remove / Filter Cell Contents in Microsoft Excel 2013

我正在寻找清理电子表格中某个特定单元格的单元格内容的最佳方法。现在,D 列在同一个单元格中列出了城市、州和高中(屏幕截图 #1)。我需要将这些值拆分为 3 个唯一的 columns/cells,如屏幕截图 #2 所示。我将如何做到这一点?

** 注意 - 下面的例子只是一个样本大小。我有数千个细胞可以执行此操作。

现有单元格格式:

新格式(希望如此):

使用文本分栏 "delimited" 以逗号分隔,然后再次使用它 "fixed width" 从学校名称中分隔州(假设州始终为 2 个字符)。如果需要,用 TRIM 清理空格。

你好,像这样的东西应该查看 D 行中的所有单元格和 return 你在接下来的 3 列中查找的值;可能需要稍微调整一下

For each cell in Range("D2:D & Range("D2".End(xlDown).Row)) cell.offset(columnOffset:=1) = left(cell,instr(String1:=cell, String2:= ",")) cell.offset(columnOffset:=2) = Mid(cell,instr(String1:=cell, String2:= ",")+1,2) cell.offset(columnOffset:=3) = right(cell,len(cell)-instr(String1:=cell, String2:= ",")+3) Next

我试过Jake Duddy的代码,里面有不少错误,不知道能不能用。同时你可以试试下面的代码。

Dim LastRow As Long
Dim State_L As String
Dim City_L As String
Dim HS_L As String

LastRow = Range("D" & Rows.Count).End(xlUp).Row


For i = 2 To LastRow

    City_L = Left(Range("D" & i), InStr(1, Range("D" & i), ",") - 1) ' Getting up to comma
    State_L = Mid(Range("D" & i), InStr(1, Range("D" & i), ",") + 1, 2) 'Getting after comma for 2 characters
    HS_L = Mid(Range("D" & i), InStr(1, Range("D" & i), ",") + 3, Len(Range("D" & i)) - InStr(1, Range("D" & i), ",")) 'Getting after comma+2 characters upto the end

    Range("E" & i).Value = City_L
    Range("F" & i).Value = State_L
    Range("G" & i).Value = HS_L

Next

Select 您要处理的单元格和 运行 这个小宏:

Sub ParseData()
    Dim r As Range, L As Long, L1 As Long, L2 As Long

    For Each r In Selection
        t = r.Text
        L = Len(t)
        L1 = InStr(1, t, ",")
        For i = 1 To L
            If r.Characters(i, 1).Font.Italic = True Then
                L2 = i
                Exit For
            End If
        Next i

        r.Offset(0, 1).Value = Mid(t, 1, L1 - 1)
        r.Offset(0, 2).Value = Mid(t, L1 + 1, L2 - L1 - 1)
        r.Offset(0, 3) = Mid(t, L2)
        r.Offset(0, 3).Font.Italic = True
    Next r
End Sub

例如: