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

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

**注 – 下面的例子只是一个样本大小。 我有成千上万的细胞来执行此操作。

现有的单元格格式:

在这里输入图像描述

新格式(希望):

在这里输入图像描述

使用文本到列“分隔”来分割逗号,然后再次使用“固定宽度”来分隔学校名称的状态(假设状态总是2个字符)。 如果需要,用TRIM清理空间。

你好像这样应该看通过D行中的所有单元格,并返回您在接下来的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

我试过杰克·达迪的代码,它包含了一些错误,我不知道它是否有效。 同时你可以尝试下面的代码。

 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你想要处理的单元格并运行这个小macros:

 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 

例如:

在这里输入图像描述