[英]Excel Concatenate Each Cell in Range
我有两个公式可以找到要连接的范围。 一个公式返回单元格地址,以表示Range的起点,例如:
'[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
此textjoin()
与内置的Excel 2016 textjoin()
公式之间的区别在于,最后两个参数是范围的开始和结束(而不是像textjoin想要的那样是单个范围)。
要使用此功能,请转到VBE(Alt + F11)。 在工作簿的VBAProject中创建一个新模块。 然后将其粘贴。
感谢在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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.