连接一列数据(忽略空格)并用换行符分隔数据

想要将列A中的数据连接到列C,如附图所示。 (注意:列C当前是硬编码的)

任何帮助将不胜感激,谢谢。

在这里输入图像说明

使用TEXTJOIN()

=TEXTJOIN(char(10),TRUE,A1:A6) 

文本join是随Office 365 Excel一起引入的。 如果您没有它,则将此代码放在附加到工作簿的模块中,并使用上述公式:

 Function TEXTJOIN(delim As String, skipblank As Boolean, arr) Dim d As Long Dim c As Long Dim arr2() Dim t As Long, y As Long t = -1 y = -1 If TypeName(arr) = "Range" Then arr2 = arr.Value Else arr2 = arr End If On Error Resume Next t = UBound(arr2, 2) y = UBound(arr2, 1) On Error GoTo 0 If t >= 0 And y >= 0 Then For c = LBound(arr2, 1) To UBound(arr2, 1) For d = LBound(arr2, 1) To UBound(arr2, 2) If arr2(c, d) <> "" Or Not skipblank Then TEXTJOIN = TEXTJOIN & arr2(c, d) & delim End If Next d Next c Else For c = LBound(arr2) To UBound(arr2) If arr2(c) <> "" Or Not skipblank Then TEXTJOIN = TEXTJOIN & arr2(c) & delim End If Next c End If TEXTJOIN = Left(TEXTJOIN, Len(TEXTJOIN) - Len(delim)) End Function 

要么

 Function TEXTJOIN(arr, Optional sDelim As String = ", ", Optional blSkipBlank As Boolean = True) Dim lPos As Long, sResult As String arr = Application.Transpose(arr) sResult = Join(arr, sDelim) If blSkipBlank = True Then sResult = Replace(sResult, sDelim & sDelim, sDelim) Do sResult = Replace(sResult, sDelim & sDelim, sDelim) lPos = InStr(1, sResult, sDelim & sDelim, vbTextCompare) If lPos = 0 Then Exit Do Loop End If If Right(sResult, Len(sDelim)) = sDelim Then TEXTJOIN = Left(sResult, Len(sResult) - Len(sDelim)) Else TEXTJOIN = sResult End If End Function 

= TEXTJOIN(A1:A16)

要么

= TEXTJOIN(A1:A16,CHAR(10))