使用列中的条件连接单元格范围

时间:2012-05-25 06:09:25

标签: vba concatenation

我需要帮助vba连接单元格。

我有一张电子表格: 列A包含几行的产品A,几行的产品B等等。 我想连接,比如产品A的B-J列中的单元格,将值写入列K或其他工作表,然后对产品B执行相同的操作,依此类推,直到电子表格结束。

我认为这需要一些vba编码,我正在学习但还不好做这项工作。请帮忙!

谢谢你, CJ

2 个答案:

答案 0 :(得分:1)

  
    
      

我认为这需要一些vba编码

    
  

不,你不需要vba:)

将此公式放入K1并将其拖放

=B1&" "&C1&" "&D1&" "&E1&" "&F1&" "&G1&" "&H1&" "&I1&" "&J1

这会将数据与SPACE连接为分隔符。如果您不想要空格,请将上述公式修改为

=B1&C1&D1&E1&F1&G1&H1&I1&J1

同样,如果要将COMMA作为分隔符连接,请使用此

=B1&", "&C1&", "&D1&", "&E1&", "&F1&", "&G1&", "&H1&", "&I1&", "&J1

依旧......

答案 1 :(得分:1)

我读了它,因为你希望一列中的所有内容都进入另一个单元格。这是一个例程,它将从您指定的单元格中获取所有数据,并连接所有内容,直到数据中断为止

Option Explicit

Function ColConc(CellRef As Range, Delimiter As String)

Dim LoopVar As Long
Dim StartRow As Long
Dim EndRow As Long
Dim Concat As String
Dim Col As Long

Col = CellRef.column
StartRow = CellRef.Row
EndRow = CellRef.End(xlDown).Row

Concat = ""

For LoopVar = StartRow To EndRow
    Concat = Concat & Cells(LoopVar, Col).Value
    If LoopVar <> EndRow Then Concat = Concat & Delimiter
Next LoopVar

ColConc = Concat
End Function

使用公式=ColConc(A2," ")进行调用,这将获取从单元格A2到该列末尾的所有内容,并以空格作为分隔符。
分隔符可以是任何字符串,因此您可以在数据之间放置任何内容。空白单元格结束用于连接成单个字符串的数据 它只适用于当前工作表 - 需要更多编码才能使该部分工作