如何连接数百个单元格的字符串?

时间:2013-07-08 15:36:10

标签: excel function vba excel-2003

我正在尝试将来自不同细胞的句子组合成一个细胞。例如:

A1 - “你好”
A2 - “怎么样”
A3 - “你”

A4 - =组合(A1:A3)----> “你好,你好吗”

我知道这个诀窍:=A1 & " " & A2.....但我有700个细胞组合成一个细胞,这种方法似乎是野蛮的。如果有内置功能,那将是理想的。我不介意VBA中的答案,只要答案非常详细,从如何打开VBA开始,因为我不知道VBA。

4 个答案:

答案 0 :(得分:4)

虽然有好处但是concatenate

在您的情况下,那将是concatenate(A1;" ";A2;" ";A3)

也不是处理700个细胞的好方法。

VBA解决方案会更好。要打开VBA编辑器,请按ALT + F11(有关图形说明,请参阅this article)。

然后,转到顶部的“插入”菜单,然后选择“模块”。编辑随后将准备好接受输入。只需粘贴以下内容(删除它可能包含的任何其他文本):

Option Explicit

Public Function MyConcatenate(ByVal myRange As Range)
    Dim vCell, vResult As String
    For Each vCell In myRange.Cells
        vResult = vResult & " " & vCell.Text
    Next
    MyConcatenate = Mid(vResult, 2)
End Function

您现在可以关闭编辑器并返回工作簿。

要使用它,请在单元格中写下以下内容:=MyConcatenate(A1:A3)

答案 1 :(得分:1)

您可以使用此页面中的StringConcat功能:http://www.cpearson.com/excel/stringconcatenation.aspx

然后你可以像这样使用它:

=StringConcat("|",B1:B5)

您将收到以B1:B5分隔的|范围内的所有值。

如果链接断开,您可以在此处找到该功能的来源:http://pastebin.com/JNS9pYWA

答案 2 :(得分:1)

对于相对适度的700细胞,配方似乎是可行的。

B1中的

=A1&" "
在C1:=B1
在B2中:复制B1(即=A2&" "
在C2中:=C1&B2

然后根据需要复制B2:C2

答案 3 :(得分:0)

我也有同样的问题。我在A1:A980的A列中有数据。 但我已经找到了解决方案如下。

在B2中,我将公式设为=CONCATENATE(B1," ",A1," ",A2) 从B3我输入公式=CONCATENATE(B2," ",A3),在B3输入=CONCATENATE(B3," ",A4)直到B980。

这将在最后一个B90单元格中为您提供结果,而且没有任何VBA也是如此。

希望您可能遇到同样的问题,这可能会解决问题。