Я тщетно пытался получить приведенный ниже макрос для правильной работы. Конечная цель - это макрос, который будет сортировать несколько таблиц (на одном рабочем листе) на основе двух критериев и который также будет работать на любом рабочем листе. Я могу сделать макрос с точными ссылками на таблицы, но искать что-то более гибкое, чтобы избежать наличия макроса для каждого рабочего листа.Макрос для сортировки нескольких таблиц по двум критериям
Основная часть моего кода рисует от рекомендации Дуга Гленси в this post, но она не работает должным образом (поскольку оригинальный плакат отмечен до того, как нить умерла). Макрос работает без ошибок, но фактически не сортирует данные.
Я думаю, что сломанная часть - это часть Key:=lo.ListColumns("Name of table column").Range
. Я недостаточно хорошо разбираюсь в этом синтаксисе, чтобы устранить его.
Я ценю любые предложения или альтернативы! Кроме того, дайте мне знать, если мои требования неясны вообще.
Sub CustomSort()
Dim lo As Excel.ListObject
Dim ws As Excel.Worksheet
Set ws = ActiveSheet
For Each lo In ws.ListObjects
With lo.Sort
.SortFields.Add Key:=lo.ListColumns("Status").Range, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SortFields.Add Key:=lo.ListColumns("Inventory Number").Range, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Header = xlYes
.Apply
End With
Next lo
End Sub
После непродолжительного тестирования кажется, что он работает нормально - при условии, что фильтры в настоящее время не применяются. Вы можете добавить Cells.AutoFilter для автоматического удаления фильтров. Не могли бы вы рассказать об этом? – TomDillinger