每星期,我都要处理收到的资料,使它们体体面面,我必须做好工作。
每个星期都是相同的任务,但数据不同,我决定自动化,以免浪费时间
我先对B列进行排序,并根据B列,对H列进行排序,每次排序之间,用两行分隔。
非常重要的是,经常可能在同一个市场(B列)上有两种不同的费用(H列),因此如果费用不同,也应该跳过两行
基本上,我试图得到的结果,因为1周是:
- 按列B的字母顺序排序
- 用两个换行符分隔每个步骤
- 将费用分开,如果在同一市场上有多项费用,则也用两行分隔符分开
下面是我能做的代码:
Sub step()
'
Dim lngRow&, i&
Dim strMarket$
lngRow& = Worksheets("DATA").Cells(Rows.Count, "B").End(xlUp).Row
With Worksheets("DATA").AutoFilter.Sort
With .SortFields
.Clear
.Add2 Key:=Range("H1:H" & lngRow&), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
End With
.Header = xlYes
.Apply
With .SortFields
.Clear
.Add2 Key:=Range("B1:B" & lngRow&), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
End With
.Header = xlYes
.Apply
End With
For i = lngRow& To 3 Step -1
strMarket$ = Worksheets("DATA").Cells(i, 2)
If Worksheets("DATA").Cells(i, 2).Offset(-1) <> strMarket$ Then Rows(i).Insert: Rows(i).Insert
Next i
以下是我收到的数据:
以下是我希望使用VBA得到的最终结果:
谢谢你提前为那些谁会帮助我,我已经搜索了互联网,但没有类似的答案,我可以找到....我一直强调了一个星期,以找到解决方案....
1条答案
按热度按时间yws3nbqq1#
第二个排序会覆写第一个排序,因为您清除了现有的排序字段。您需要的内容如下: