连接单元格范围(Microsoft Excel)
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及更高版本)找到本技巧的版本: