首页 > 解决方案 > 根据另一列顺序对列进行排序

问题描述

我有两列 A 和 B,我想根据 B 值的顺序对 A 进行排序。我想做这个 VBA

 *11000000      11750020
 11020150       11050010
 11000002       11520090

 i want this result;
 11750020       11750020
 11050010       11050010
 11520090       11520090
 *

enter code here
Dim SortByCol As Range
Dim ToSortCol As Range
Set SortByCol = ThisWorkBook.Worksheets("sheet1").Columns("B")
Set ToSortCol = ThisWorkBook.Worksheets("sheet1").Columns("A")

Dim SortRange As Range
Set SortRange = ThisWorkBook.Sheets("sheet1").Range("D1")
Union(SortByCol, ToSortCol).Copy SortRange
Set SortRange = SortRange.CurrentRegion
With SortRange.Parent.Sort

    .SortFields.Add Key:=SortRange.Range("A" & SortRange.Rows.Count), 
    SortOn:=xlSortOnValues, DataOption:=xlSortNormal

    .SetRange SortRange
    .Header = xlYes
    .MatchCase = True
    .Orientation = xlTopToBottom:
    '.SortMethod = xlPinYin
    .Apply
End With

SortRange.Columns(2).Copy ToSortCol

SortRange.Clear

标签: excelvba

解决方案


推荐阅读