John在A列中有一个工作表,其中包含大量非常长的文本字符串。他需要分别从每个字符串中提取前249个字符,并将单个字符放在字符串右侧的每个单元格中。

您可以通过两种方法来完成此任务。通过使用简单的公式非常容易做到。例如,如果您的第一个文本字符串位于单元格A1中,则在单元格B1中将以下公式放在其右侧:

=MID($A1,COLUMN()-1,1)

此公式使用Excel工作表函数将文本字符串分开。在这种情况下,COLUMN函数将返回值2,因为该公式位于B列中,并且该列是工作表中的第二列。

该值减1,然后用作指向单元格A1中字符串的指针,标记提取的字符应来自何处。当您正确复制此公式时,无论需要多少单元格,最终都将以连续顺序从字符串中得到各个字符。

当然,如果您在工作表中有很多字符串(如John一样),则可以将此公式复制到249列及以下的列中,例如,数百行可能会使工作表非常缓慢。在这种情况下,可能需要使用宏而不是公式来拆分字符串。下面的宏SplitUp是进行实际拆解的一种方法。

Sub SplitUp()

Dim c As Range     Dim r As Range     Dim sTemp As String     Dim z As Integer

Set r = Range("A1", Range("A1048576").End(xlUp))

For Each c In r         sTemp = Left(c, 249)

For z = 1 To Len(sTemp)

c.Offset(0, z) = Mid(sTemp, z, 1)

Next z     Next End Sub

宏首先定义一个范围(r),该范围(r)由A列中所有包含值的单元格组成。然后,使用c变量表示该范围内的每个单元格,并从每个单元格中提取前249个字符。然后使用For …​ Next循环从字符串中提取每个字符,并将其填充到字符串右边的单元格中。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

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

本技巧(12059)适用于Microsoft Excel 2007、2010、2013和2016。您可以在此处为Excel的较旧菜单界面找到此技巧的版本:

链接:/ excel-Pulling_Apart_Characters_in_a_Long_String [将长字符串中的字符分开]。