Excel连接范围内的每个单元格

我有两个公式可以find我想要连接的范围。 一个公式返回范围开始的单元格地址,例如:

'[AM Track.xlsm]Raw Data'!$A$10` 

另一个公式返回范围末尾的单元格地址,例如

  '[AM Track.xlsm]Raw Data'!$A$21` 

我怎样才能连接这个范围内的每个单元格?

在Excel 2016中模拟TextJoin并适合您的需求的快速VBA例程是:

 Function textjoin(delimiter As String, ignoreEmpty As Boolean, startcell As Range, endcell As Range) As String Dim rngCell As Range For Each rngCell In Range(startcell, endcell).Cells If (ignoreEmpty And rngCell.Value <> "") Or Not ignoreEmpty Then If textjoin = "" Then textjoin = rngCell.Value Else textjoin = textjoin & delimiter & rngCell.Value End If Next rngCell End Function 

这与Excel 2016 textjoin()公式中内置的区别在于最后两个参数是范围的开始和结束(而不是像textjoin想要的单个范围)。

要使用这个,去你的VBE(Alt + F11)。 在工作簿的VBAProject中创build一个新模块。 然后粘贴这个。

感谢有关Excel 2016中的TextJoin的评论,我发现这个:

 Option Explicit Function TEXTJOIN(delimiter As String, ignore_empty As String, ParamArray textn() As Variant) As String Dim i As Long For i = LBound(textn) To UBound(textn) - 1 If Len(textn(i)) = 0 Then If Not ignore_empty = True Then TEXTJOIN = TEXTJOIN & textn(i) & delimiter End If Else TEXTJOIN = TEXTJOIN & textn(i) & delimiter End If Next TEXTJOIN = TEXTJOIN & textn(UBound(textn)) End Function