У меня есть таблица в Excel, которая заполняется макросом Listobject из базы данных.Как сортировать строки в столбце A в ListObject VBA с параметром в столбце B
Я могу сортировать таблицу по следующему коду:
'Sort on projecttabel
Dim lo As Excel.ListObject
Set lo = Plan.ListObjects(1)
With lo
.Sort.SortFields.Clear
.Sort.SortFields.Add _
Key:=Range("Table_appnlvd03_nkmgo_report_NKMGO_Report__KHNS_EFTTS_KPI32[klant]"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
.Sort.SortFields.Add _
Key:=Range("Table_appnlvd03_nkmgo_report_NKMGO_Report__KHNS_EFTTS_KPI32[Status]"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
.Sort.SortFields.Add _
Key:=Range("Table_appnlvd03_nkmgo_report_NKMGO_Report__KHNS_EFTTS_KPI32[RFO plandatum]"), SortOn:=xlSortOnValues, Order:=xlDescending, _
DataOption:=xlSortNormal
.Sort.SortFields.Add _
Key:=Range("Table_appnlvd03_nkmgo_report_NKMGO_Report__KHNS_EFTTS_KPI32[Uitvoeren montage plan start]"), SortOn:=xlSortOnValues, Order:=xlDescending, _
DataOption:=xlSortNormal
With .Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
«Status» имеет несколько значений целых чисел от 1 до 100. Что я хотел бы сделать, это является сортировка строк на основе их статус И еще одна колонка. Проблема, с которой я сталкиваюсь, заключается в том, что «второй столбец» для сортировки отличается для каждого состояния.
Что я хотел бы создать - это таблица «Гант», в которой сортируются разные столбцы даты. Спуск по каждому статусу. Например (DD-MM-YYYY)
[Status] [date1] [date2] [date3]
1 **10-01-2015** 12-02-2015 31-03-2015
1 **09-01-2015** 14-02-2015 10-03-2015
1 **08-01-2015** 06-02-2015 05-03-2015
1 **07-01-2015** 18-02-2015 28-03-2015
2 17-01-2015 **15-02-2015** 10-03-2015
2 27-01-2015 **14-02-2015** 10-03-2015
2 04-01-2015 **13-02-2015** 16-03-2015
2 31-01-2015 **05-02-2015** 10-03-2015
5 18-01-2015 12-02-2015 **30-03-2015**
5 31-01-2015 18-02-2015 **27-03-2015**
5 17-01-2015 04-02-2015 **26-03-2015**
5 07-01-2015 27-02-2015 **08-03-2015**
5 09-01-2015 24-02-2015 **03-03-2015**
и т. Д. Возможно ли это?
Если у вас уже есть объект ListObject как ссылочный объект, вам действительно не нужно ссылаться на диапазоны таким образом. Просто попробуйте это: с .lo.Sort .Fields.Add .ListColumns ("kanlt") Диапазон, xlSortOnValues, xlAscending, xlSortNormal.. 'ADD ДРУГИЕ СНП ПОЛЯ ЗДЕСЬ' .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Не End With – William
Так как это не ответ на вопрос, я отправил его в комментариях, но это будет лучше читать, если \ n отображается в комментариях (или если есть способ добавить кодовый блок в комментарии) – William