У меня проблема. Я отфильтровываю из большой таблицы продуктов (около 32 000 рядов) нужные мне продукты и сортирую их сначала по имени продукта, а затем по номеру доставки.Сортировка чисел и текста в одно время создает проблемы
Проблема заключается в том, что если я хочу фильтровать и сортировать числа как названия продуктов (что также возможно), оно не сортируется правильно (см. Рисунок).
Picture of the filtered and sorted table
Мой код это один:
'*************************************************************
'Filter Product Code
Set myrange = Range("A1:A" & lastrow)
For Each c In myrange
If Len(c.Value) <> 0 Then
ThisWorkbook.Worksheets(Worksheets.Count).Columns("A:D").AdvancedFilter xlFilterCopy, _
Sheet1.Range("A1:A" & lastrow), Sheet1.Range("G1"), False
End If
Next
'Sheet1.Range("51:100").RemoveDuplicates Columns:=3, Header:=xlYes
'*******************************************************************
'Sort the filtered list first by Product Code then by the Delivery number
Dim lngRow As Long
Dim lngRowMax As Long
Dim wsf As WorksheetFunction
With Sheet1
lastrow = Cells(Rows.Count, 8).End(xlUp).Row
Range("G2:J" & lastrow).Sort Key1:=Range("G2:G" & lastrow), _
Order1:=xlAscending, Key2:=Range("I2:I" & lastrow), _
Order1:=xlAscending, Header:=xlNo
Set wsf = Application.WorksheetFunction
lngRowMax = .UsedRange.Rows.Count
End With
Как я могу продолжить, чтобы он правильно отсортирован. Сначала одни и те же коды продуктов, затем по номеру доставки (по возрастанию), поскольку я хочу сначала продать самые старые продукты.
Благодарим вас за ответ.
Являются ли форматы ячеек строк данных 4 и 5 отличными от других? Просто используя функцию Сортировка на ленте данных, она сортируется так, как вы ожидаете от меня. – PeterT
Это должно быть сделано с помощью макроса. Столбец G форматируется как текст, colum I форматируется как число. Я думаю, это не должно быть проблемой, не так ли? Все еще не работает. Любые идеи @PeterT, @ user3598756? – Abduuul