我有两个公式可以找到我想要连接的范围。 一个公式返回范围开始的单元格地址,例如:
'[AM Track.xlsm]Raw Data'!$A$10`
另一个公式返回范围结束的单元格地址,例如
'[AM Track.xlsm]Raw Data'!$A$21`
如何连接此范围内的每个单元格?
答案 0 :(得分:1)
在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中创建一个新模块。然后粘贴它。
答案 1 :(得分:0)
感谢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