将行复制到一个单元格中 VBA

Copying rows into one cell VBA

我有一个工作表,其中只有一列有各种值,例如:

A
B
C
D
E
F
...

我需要编写一个简单的代码,将所有内容放在 一个 单元格(例如 D2)中,我希望该单元格具有一个值:

A;B;C;D;E;F;...

在一个简单的表格中,以下 VBA 宏可以完成这项工作(假设您在 Excel 工作表的 A 列中有您想要连接的值,并将结果放在单元格 D2 中) :

Sub ConcatenateCells()
Dim i As Integer
Dim count As Integer
Dim s As String
count = Cells(Rows.count, "A").End(xlUp).Row
For i = 1 To count
    s = s & Cells(i, 1) & ";"
Next
Range("D2") = s
End Sub

您可以根据自己的目的对其进行修改。此外,您可以通过添加条件来排除空单元格:

If Cells(i, 1).Value <> "" Then s = s & Cells(i, 1).Value & ";"

希望这可能有所帮助。最好的问候,

如果您用 Google 搜索过,您可能会偶然发现 this link,这是一种使用 Excel 公式的非常时髦的方法。

=CONCATENATE(TRANSPOSE(A1:A6 & ";"))

您只需要确保 TRANSPOSE 函数是使用 F9 执行的。

不过,您也可以随时使用 VBA 用户定义函数来完成它。