以前可能发生过这种情况:您获取工作表的数据,其中一列包含名称。唯一的问题是,所有名称都聚集在一起。例如,单元格包含“ Allen Wyatt”,

但是您宁愿在一个列中使用名字,而在相邻列中使用姓氏。您如何将名称分开?

您可以轻松使用Excel中的“文本到列”功能将数据分开。只需执行以下步骤:

。选择要拆分的单元格范围。

。从“数据”菜单中选择“文本到列”。 Excel启动“将文本转换为列”向导。 (请参见图1。)

。选择您选择的文本是固定宽度还是定界。

(在名字和姓氏之间有空格的情况下,文本将被定界。)

。单击下一步。

。指定您要Excel识别的定界符。如果将名称分开,则应确保使用空格作为分隔符。

。单击完成。

Excel将选定范围内的单元格分开,并在指定的分隔符处分隔所有文本。 Excel使用但是需要许多列来保存数据。

如果您不想将数据完全分布在各列中,则需要使用宏。例如,如果一个单元格包含“ John Davis,Esq。”,则使用“文本到列”功能将导致数据被分为三列:第一列包含“ John”,第二列包含“ Davis”,(带有逗号),第三个包含“ Esq”。如果您希望将数据分为两列(一列为“ John”,另一列为“ Davis,Esq。”),则以下宏将很有帮助:

Sub PullApart()

Dim FirstCol As Integer, FirstRow As Integer     Dim RowCount As Integer     Dim ThisRow As Integer     Dim j As Integer, k As Integer     Dim MyText As String

FirstCol = ActiveWindow.RangeSelection.Column     FirstRow = ActiveWindow.RangeSelection.Row     RowCount = ActiveWindow.Selection.Rows.Count

For j = 1 To RowCount         ThisRow = FirstRow + j - 1         MyText = Cells(ThisRow, FirstCol).Text         k = InStr(MyText, " ")

If k > 0 Then             Cells(ThisRow, FirstCol + 1).Value = Mid(MyText, k + 1)

Cells(ThisRow, FirstCol).Value = Left(MyText, k - 1)

End If     Next j End Sub

||||此宏检查每个单元格,并将所有内容保留到所选单元格的第一个空格,然后将所有空格之后的内容移到右侧的列中。此宏唯一的“陷阱”是确保您

_ _注意:

|如果您想知道如何使用在此描述的宏,则在该列的右侧没有任何内容。页面(或_ExcelTips_网站上的任何其他页面)上,我准备了一个包含有用信息的特殊页面。

link:/ excelribbon-ExcelTipsMacros [单击此处可在新的浏览器选项卡中打开该特殊页面。 ]

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

此技巧(2967)适用于麦克风rosoft Excel 97、2000、2002和2003。可以在Excel的功能区界面(Excel 2007和更高版本)中找到此技巧的版本: