这个我还是建议现在其他工作表中全部进行排序,然后再用简单的公式导过去数据:
亲,望采纳哦!
试试这个
Sub 排序()
Application.ScreenUpdating = False
With ActiveSheet
Range("D2:F44").Cut
.Paste Range("A45")
Range("G2:I44").Cut
.Paste Range("A88")
Range("A2").Select
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=Range("B2:B130"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Sort.SortFields.Add Key:=Range("A2:A130"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveSheet.Sort
.SetRange Range("A1:I130")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A88:C130").Cut
.Paste Range("G2")
Range("A45:C87").Cut
.Paste Range("D2")
End With
Application.ScreenUpdating = False
End Sub
写程序要花较长的时间和精力,你的数据不是很多,你可以将数据复制粘贴到一系列,排序后再按你的44行要求 复制到你要求的位置。这样做更简单。