拉长字符串中的字符(Microsoft Excel)
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("A65536").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培训的来源。
本技巧(2790)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: