![在 VBA 或宏中动态垂直单元格合并](https://linux22.com/image/1604327/%E5%9C%A8%20VBA%20%E6%88%96%E5%AE%8F%E4%B8%AD%E5%8A%A8%E6%80%81%E5%9E%82%E7%9B%B4%E5%8D%95%E5%85%83%E6%A0%BC%E5%90%88%E5%B9%B6.png)
我获取的数据是每个订购者订购的每件商品占一行。我试图将其合并为一行,其中包含订购者和所订购商品的合并
从你对...的回答来看 如果同一行合并到不同的列中,则宏将合并同一列中的单元格
我知道该做什么。
我可以先尝试将所有名称合并到一个单元格,然后,我遇到了上述帖子中的情况。虽然我不确定该怎么做。如果是 if 子句 A1=A2, A1&'',那现在对我来说不太适用。
因此,任何帮助都将非常有帮助。
答案1
UDF
&的组合SUBSTITUTE
可以解决这个问题:
怎么运行的:
- 放入
0
单元格I236
& 公式放入单元格I237:
=IF(G236=G237,I236+1,0)
,将其填满。
- 按下Alt+F11 或R右键单击年代按 TAB 并点击五查看代码哦笔 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
。 - 根据需要调整公式中的单元格引用。