繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM