连接未知数量的列和行

时间:2018-06-07 12:17:02

标签: excel vba excel-vba concatenation

我正在尝试一些事情,因为我真的迷失了。请有人帮我解决一下。

我想将Excel中的列从第一列连接到最后一个非空列,并在每列之间添加逗号。

接下来,我想将第一行的循环应用到最后一个非空行。

我成功地使用已知数量的列(我之后添加代码),但是当列数未知时却没有。

Range("H2").Select
ActiveCell.FormulaR1C1 = _
    "=CONCATENATE(RC[-7],"","",RC[-6],"","",RC[-5],"","",RC[-4],"","",RC[-3],"","",RC[-2])"
Range("H2").Select
Selection.AutoFill Destination:=Range("H2:H" & Range("A2").End(xlDown).Row), Type:=xlFillDefault

1 个答案:

答案 0 :(得分:3)

对于没有它的版本(Excel 2013及更早版本),这里是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

Source)功能

示例

如果你想连接A列中每个填充的单元格,使用逗号作为分隔符,你可以使用:

=TEXTJOIN(",",TRUE,A:A)