我正在尝试一些事情,因为我真的迷失了。请有人帮我解决一下。
我想将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
答案 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)