EXCEL的VBA公式,求修改下

2025-03-09 09:09:17
推荐回答(3个)
回答1:

这个我还是建议现在其他工作表中全部进行排序,然后再用简单的公式导过去数据:


亲,望采纳哦!

回答2:

试试这个

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

回答3:

写程序要花较长的时间和精力,你的数据不是很多,你可以将数据复制粘贴到一系列,排序后再按你的44行要求 复制到你要求的位置。这样做更简单。