макрос создания сортировки нескольких столбцов и недопущение дублирования значений

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
clar
Сообщения: 15
Зарегистрирован: 25 фев 2013, 13:59

Подскажите ,пожалуйста, как указать определенные столбцы в макросе для сортировки.
В таблице нужно отсортировать по столбцу В (в столбце В тоже нужна сортировка) столбцы F, G, I, остальные столбцы C, D , E , H сортируются через функцию ПРОСМОТР. В столбце G нужно, чтобы строки, выбранные из раскрывающегося списка не дублировались.
Пробую сортировку сплошным диапазоном (B18:I37) не получается. Указываю столбцы - тоже.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Select Case LCase(Sh.Name)
Case "лист1", "лист2"

If Not Intersect(Sh.Range("B18:B37, F18:F37, G18:G37, I18:I37"), Target) Is Nothing Then

With Application
.EnableEvents = False

If .Max(.CountIf(Sh.Range("G18:G37"), Target)) > 1 Then
.Undo

Else
Sh.Range("B18:B37,F18:F37, G18:G37, I18:I37").Sort _
Key1:=Sh.Range("B18"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom


End If

.EnableEvents = True
End With
End If
End Select
End Sub
Ответить