在 VBA 或宏中动态垂直单元格合并

在 VBA 或宏中动态垂直单元格合并

我获取的数据是每个订购者订购的每件商品占一行。我试图将其合并为一行,其中包含订购者和所订购商品的合并

电子表格中的原始数据:
电子表格中的原始数据

数据的最终目标:
数据的最终目标

从你对...的回答来看 如果同一行合并到不同的列中,则宏将合并同一列中的单元格

我知道该做什么。

我可以先尝试将所有名称合并到一个单元格,然后,我遇到了上述帖子中的情况。虽然我不确定该怎么做。如果是 if 子句 A1=A2, A1&'',那现在对我来说不太适用。

因此,任何帮助都将非常有帮助。

答案1

UDF&的组合SUBSTITUTE可以解决这个问题:

在此处输入图片描述

怎么运行的:

  • 放入0单元格I236& 公式放入单元格I237:

=IF(G236=G237,I236+1,0)将其填满。

  • 按下Alt+F11 或R右键单击年代按 T​​AB 并点击查看代码笔 VB 编辑器。
  • C奥皮&将此 VBA 代码粘贴为模块。

    Function SingleCellValue(Lookupvalue As String, LookupRange As Range, ColumnNumber As Integer, Char As String)
    
    Dim i As Long
    Dim xRet As String
    For i = 1 To LookupRange.Columns(1).Cells.Count
        If LookupRange.Cells(i, 1) = Lookupvalue Then
            If xRet = "" Then
                xRet = LookupRange.Cells(i, ColumnNumber) & Char
            Else
                xRet = xRet & "" & LookupRange.Cells(i, ColumnNumber) & Char
            End If
        End If
    Next
    SingleCellValue = Left(xRet, Len(xRet) - 1)
    End Function
    
  • 在单元格中写入公式H249:

=SingleCellValue(G249,G236:H246,2,",")

  • 单元格中的最终公式I249:

=SUBSTITUTE(H249, "Cust. Order,", "", 1)

向下填充公式。

注意:

  • 为了以后整洁,您可以隐藏 Cell 中的值H249:H251
  • 根据需要调整公式中的单元格引用。

相关内容