我正在自动化一个利用Excel VBA 2010获取两个电子表格,组合它们,排序它们,删除重复数据以及其他一些东西的流程。我很模糊,因为这些都是有效的,与此线程无关。
我正在努力的最后一项任务是将UI排序(参见附图)转换为VBA代码。
老实说,我很茫然,这里是我开始使用的代码,但感觉还不够。如果我希望这项任务在VBA中自动化甚至可能吗?
Private Sub score_sort()
Dim sort_rng As Range
Dim aCell As Range
Dim bCell As Range
counter = Worksheets("Sheet1").UsedRange.Rows.Count
column_letter = Replace(Cells(1, ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column).Address(False, False), "1", "")
rng = ""
rng = "A1:" + column_letter + CStr(counter)
Set sort_rng = Range(rng)
Set aCell = Range("F2")
Set bCell = Range("H2")
sort_rng.Sort Key1:=aCell, Order1:=xlAscending, Header:=xlYes
End Sub
将图片与范围匹配“最终得分”= F1和“潜在得分”= H1
由于
答案 0 :(得分:0)
感谢@thunderblaster建议使用宏来捕获它。我非常关注我的代码,因此我使用宏录制器提供的代码在我的VBA代码中构建sub。我正在与社区分享它以供使用或扩展。
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add(Range(f_rng), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(255, _
0, 0)
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add(Range(f_rng), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(255, _
200, 0)
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add(Range(f_rng), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(255, _
255, 0)
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add(Range(p_rng), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(255, _
0, 0)
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add(Range(p_rng), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(255, _
200, 0)
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add(Range(p_rng), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(255, _
255, 0)
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add(Range(f_rng), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(0, _
255, 0)
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A1:Y30")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With