Здравствуйте, в примере на Листе1, если нажать Sort2, произойдет сортировка на неактивном Листе2, при этом выделяется первая строка диапазона. Аналогично на Листе2, если нажать Sort1, произойдет сортировка на неактивном Листе1 и будет выделен весь диапазон. Возможно ли сделать так, чтобы при сортировке на неактивном листе никаких выделений не происходило?
Код |
---|
Sub Sort1()
Application.ScreenUpdating = False
Application.EnableEvents = False
Dim Sh As Range, iLastRow&
iLastRow& = Cells(ActiveWorkbook.Worksheets("Ëèñò1").Rows.Count, 8).End(xlUp).Row
iLastRow& = IIf(iLastRow < 5, 5, iLastRow)
ActiveWorkbook.Worksheets("Ëèñò1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Ëèñò1").Sort.SortFields.Add Key:=Range("D5:D" & iLastRow), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Ëèñò1").Sort
.SetRange Range("B5:H" & iLastRow)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub |
Код |
---|
Sub Sort2()
Application.ScreenUpdating = False
Application.EnableEvents = False
Dim Sh As Range, iLastRow&
iLastRow& = Cells(ActiveWorkbook.Worksheets("Ëèñò2").Rows.Count, 9).End(xlUp).Row
iLastRow& = IIf(iLastRow < 5, 5, iLastRow)
ActiveWorkbook.Worksheets("Ëèñò2").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Ëèñò2").Sort.SortFields.Add Key:=Range("D5:D" & iLastRow), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Ëèñò2").Sort
.SetRange Range("B5:I" & iLastRow)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub |