假设我有一系列像这样的单元格:
A
1 Foo
2 Bar
3 Hello
4 World
5 Random Text
我想做的是让我的公式的结果填充另一个单元格:
Foo, Bar, Hello, World, Random Text
现在,我知道如何连接两个单元格:
=A1&", "&A2
但是我怎样才能对整个系列做同样的事情呢?
假设我有一系列像这样的单元格:
A
1 Foo
2 Bar
3 Hello
4 World
5 Random Text
我想做的是让我的公式的结果填充另一个单元格:
Foo, Bar, Hello, World, Random Text
现在,我知道如何连接两个单元格:
=A1&", "&A2
但是我怎样才能对整个系列做同样的事情呢?
这是您可能可以使用的功能。只需将其放在您的工作簿代码模块中,然后您可以在单元格中输入它,例如:
=JoinRange(A1:A6)
或=JoinRange(A2:D15)
等
Public Function JoinRange(ByVal rng As Range) As String
Dim dlmt As String: dlmt = ","
Dim multiRow As Boolean: multiRow = rng.Rows.Count > 1
Dim r As Long, c As Long
Select Case rng.Columns.Count
Case 1
If multiRow Then
JoinRange = Join(Application.WorksheetFunction.Transpose(rng), dlmt)
Else:
'a single cell
JoinRange = rng
End If
Case Is > 1
If multiRow Then
'a 2d range of cells:
For r = 1 To rng.Rows.Count
For c = 1 To rng.Columns.Count
JoinRange = JoinRange & rng(r, c) & dlmt
Next
Next
JoinRange = Left(JoinRange, Len(JoinRange) - 1)
Else:
JoinRange = Join(Application.WorksheetFunction.Transpose( _
Application.WorksheetFunction.Transpose(rng)), dlmt)
End If
Case Else
End Select
End Function
在=A1
B1 中然后=B1&", "&A2
在 B2 中并复制下来似乎可行。
在单元格 B1 中放置一个逗号和一个空格,然后使用以下公式:
=CONCATENATE(A1,B1,A2,B1,A3,B1,A4, B1, A5)
您也可以尝试以下问题的几个答案,包括 VBA 选项和公式: