【问题标题】:Concatenate range of cells with criteria in a column将单元格范围与列中的条件连接起来
【发布时间】:2012-05-25 06:09:24
【问题描述】:

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

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

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

谢谢你, cj

【问题讨论】:

  • 您的问题标题提到了Criteria。你能解释一下这是什么意思吗?

标签: vba concatenation


【解决方案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

等等……

【讨论】:

    【解决方案2】:

    我阅读它是因为您希望将单个列中的所有内容放入另一个单元格中。这是一个例程,它将从您指定的单元格中获取所有数据,并将所有下降的数据连接起来,直到数据中断

    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 到该列末尾的所有内容,并以空格作为分隔符。
    分隔符可以是任何字符串,因此您可以在数据之间放置任何内容。空白单元格结束用于连接成单个字符串的数据。
    它仅适用于当前工作表 - 需要更多编码才能使该部分正常工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-20
      • 1970-01-01
      • 2014-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多