Excel提供了一个工作簿函数和一个运算符,它们具有相同的目的-将字符串组合成更长的字符串。 CONCATENATE函数和&运算符的用途基本相同。

许多人使用&运算符优先于CONCATENATE函数,因为它需要更少的键入,但是如果CONCATENATE处理一系列单元格,它将变得更加有价值。

不幸的是,它没有,但是您可以创建自己的用户定义函数,该函数可以很好地连接范围内的每个单元格。

请考虑以下宏:

Function Concat1(myRange As Range, Optional myDelimiter As String)

Dim r As Range

Application.Volatile     For Each r In myRange         Concat = Concat & r & myDelimiter     Next r     If Len(myDelimiter) > 0 Then         Concat = Left(Concat, Len(Concat) - Len(myDelimiter))

End If End Function

此函数需要一个范围,并提供一个可选的定界符。

最后的“ If”语句从级联字符串中删除最后的结尾定界符。使用CONCAT1功能,可以在该范围内添加和删除单元格,而无需维护CONCATENATE或“&”号公式。您需要做的就是以下列方式之一调用函数:

=CONCAT1(C8:E10)

=CONCAT1(C8:E10,"|")

调用该函数的第二种方法是使用可选的定界符,该定界符插入在C8:E10范围的每个串联值之间。但是,这有一个问题:如果该范围内的单元格为空,那么您可以得到两个顺序定界符。如果您只希望使用单个定界符,则需要对该函数进行一些小的更改:

Function Concat2(myRange As Range, Optional myDelimiter As String)

Dim r As Range

Application.Volatile     For Each r In myRange         If Len(r.Text) > 0 Then             Concat = Concat & r & myDelimiter         End If     Next r     If Len(myDelimiter) > 0 Then         Concat = Left(Concat, Len(Concat) - Len(myDelimiter))

End If End Function

注意:

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

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

本技巧(3062)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: