macros为多行文本

我在一栏中有一个excel表单。单元格中列出了标题名称“LOTZ”多行商品名称(商品数量变化,例如,第1天有7个商品,第2天可能有1个)。 我需要在全年创造Top 50商品,分别在另外一张纸上。

例如: –

在这里输入图像说明

结果我想在新插入的表格中: –

在这里输入图像说明

我能够使用“数据”选项卡“文本到列”,但不知道如何通过macros代码进行合并。

任何帮助将不胜感激。

谢谢monika

尝试这个:

Sub consolidate() Dim r As Range, dict As Object, lotz Set dict = CreateObject("Scripting.Dictionary") For Each r In Worksheets("Sheet1").UsedRange.Columns("C").Offset(1).Cells For Each lotz In Split(r.value, vbLf) dict(lotz) = dict(lotz) + 1 Next Next With Worksheets.Add .Range("A1:B1").value = Array("LOTZ", "Count") .Range("A2:A" & dict.Count + 1).value = Application.Transpose(dict.Keys) .Range("B2:B" & dict.Count + 1).value = Application.Transpose(dict.Items) .Range("A2:B" & dict.Count + 1).Sort .Range("B2"), xlDescending End With End Sub 

编辑

如果lotz列未知,而您想在第1行find它的标题,则可以使用它:

 For Each r In Worksheets("Sheet1").UsedRange.Find("LOTZ").EntireColumn.SpecialCells(xlCellTypeConstants).Offset(1)