0
我在一列中有一個excel表單頭名稱'LOTZ'多行商品名稱列在單個單元格中(商品數量變化例如第1天有7個商品&第2天可能有1個很好)。我需要在全年創建前50名商品,並分別單獨計算。用於多行文本的宏
例子: -
結果,我希望在新的插頁: -
我能夠使用數據選項卡 '文字列'但不知道如何通過宏代碼進行合併。
任何幫助將不勝感激。
感謝莫妮卡
我在一列中有一個excel表單頭名稱'LOTZ'多行商品名稱列在單個單元格中(商品數量變化例如第1天有7個商品&第2天可能有1個很好)。我需要在全年創建前50名商品,並分別單獨計算。用於多行文本的宏
例子: -
結果,我希望在新的插頁: -
我能夠使用數據選項卡 '文字列'但不知道如何通過宏代碼進行合併。
任何幫助將不勝感激。
感謝莫妮卡
試試這個:
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行頭,你可以用這個來代替:
For Each r In Worksheets("Sheet1").UsedRange.Find("LOTZ").EntireColumn.SpecialCells(xlCellTypeConstants).Offset(1)
謝謝你能提出一種方式,當LOTZ表的位置變化。意思是找到標題LOTZ並在列 –
上運行同樣按降序排列 –
代碼也給出標題計數,即LOTZ = 1 –