我希望那里有人可以帮我这个!
我有一部分工作表(例如A10:D100),用户在其中输入数据。
结束单元格将始终包含组名称/标签(例如“工具”,或“黑桃”或任何),并且宏需要按字母顺序对这些组中的所有数据进行排序,然后在组上方插入一行并添加标题。标题将等于下面行的结尾单元格中的组名。
这样的事情:
A B C D
(data)(data)(data)Tools
(data)(data)(data)Spades
(data)(data)(data)Boots
(data)(data)(data)Spades
(data)(data)(data)Tools
(data)(data)(data)Boots
(data)(data)(data)Boots
(data)(data)(data)PPE
etc.
对此:
A B C D
(data)(data)(data)Boots
(data)(data)(data)Boots
(data)(data)(data)Boots
(data)(data)(data)PPE
(data)(data)(data)Spades
(data)(data)(data)Spades
(data)(data)(data)Tools
(data)(data)(data)Tools
etc.
然后是这样的:
A B C D
Boots
(data)(data)(data)Boots
(data)(data)(data)Boots
(data)(data)(data)Boots
PPE
(data)(data)(data)PPE
Spades
(data)(data)(data)Spades
(data)(data)(data)Spades
Tools
(data)(data)(data)Tools
(data)(data)(data)Tools
etc.
我发现this并尝试调整它,但我收到一条错误消息,说'此命令需要列标签'..我的深度有点超出我的深度!
感谢任何帮助
答案 0 :(得分:2)
无法理解为什么最终解决方案没有按字母顺序排序,猜猜你需要这个。
我没有阅读链接,只是尝试为您需要的东西编写代码:
Sub Macro1()
Dim i, n, values As Integer
n = 9 'last row, change it to your last row
With ActiveWorkbook.ActiveSheet
.Range("A1:D" & n).Select
Selection.Sort key1:=Range("D1:D" & n), _
order1:=xlAscending, Header:=xlNo
'count how much different values are in column D that are the numbers of
'rown i'm going to add
values = 1
For i = 2 To n
If .Cells(i, 4) <> .Cells(i - 1, 4) Then
values = values + 1
End If
Next
'do the trik for the first row
.Rows(1).Insert
.Cells(2, 4).Copy Destination:=.Cells(1, 1)
'for the others (start from the third row because the first is already
'been inserted and filled and the second contains in col. D what it's been
'copyed in row 1
For i = 3 To (n + values) Step 1
If .Cells(i, 4) <> .Cells(i - 1, 4) Then
.Rows(i).Insert
.Cells(i + 1, 4).Copy Destination:=.Cells(i, 1)
i = i + 1
End If
Next
End With
End Sub
希望这就是你要找的东西。
埃托