Это снова я. Я пробовал разные варианты сортировки строк на основе Col D для каждой коллекции.
Это самая близкая, но найдены 2 ошибки.
1- L oop и не в состоянии выйти, когда он достигает последних использованных строк. Сортировка продолжается до тех пор, пока я не нажму, чтобы принудительно завершить. 2 - Невозможно выполнить сортировку, если в коллекции имеется только один SKU. Также сортируется следующая коллекция. Иногда 3 коллекции отсортированы. например, перед запуском - строки 9, 29, 32, 35, 45 ....
Вот мой код. Что не так с моим кодом?
Sub SortingCollectionOnColD
With ActiveSheet.Range("A:A")
Set FindSubtotal = .Find("Subtotal", After:=.Range("A1"), LookIn:=xlValues)
If Not FindSubtotal Is Nothing Then
firstOne = FindSubtotal.Address
Do
With FindSubtotal
Range("A" & FindSubtotal.Row - 1).Select
Set SortRange = Range(Selection, Selection.End(xlUp)).EntireRow
ActiveSheet.Sort.SortFields.Clear
ActiveSheet.Sort.SortFields.Add Key:=Range("C" & FindSubtotal.Row) _
, SortOn:=xlSortOnValues, Order:=xlAscending
With ActiveSheet.Sort
.SetRange SortRange
.Header = xlNo
.Orientation = xlTopToBottom
.Apply
End With
End With
Set FindSubtotal = .FindNext(FindSubtotal)
Loop While Not FindSubtotal Is Nothing And FindSubtotal.Address <> firstOne
End If
End With End Sub
Перед запуском
Ожидаемый результат
После пробега. выделены основные сбои