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