Как исключить первый ряд из сортировки (vba) - PullRequest
0 голосов
/ 30 ноября 2018

Мне нужно отсортировать несколько листов одновременно, используя этот скрипт.

Sub SortAllSheets()
   Dim WS      As Worksheet
   ActiveSheet.Range("a2:f2").Select
   Selection.Copy
   On Error Resume Next
   Application.ScreenUpdating = False
   For Each WS In Worksheets
      WS.Columns("A:F").Sort Key1:=WS.Columns("D"), Order1:=xlAscending
   Next WS
   ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteAll
   Application.ScreenUpdating = True
End Sub

Есть ли способ определить, что первая строка (заголовок) в каждом листе будет исключена из сортировки?Я пытался изменить ввод данных или добавить некоторые дополнительные функции, но безуспешно.Спасибо за любые советы.

1 Ответ

0 голосов
/ 30 ноября 2018

пример:

Dim strDataRange As Range
Dim keyRange As Range
Set strDataRange = Range("Your Data Range")
Set keyRange = Range("Your Sort by Column")
strDataRange.Sort Key1:=keyRange, Header:=xlYes

, поэтому используйте ваш код:

Sub SortAllSheets()
   Dim WS      As Worksheet
   ActiveSheet.Range("a2:f2").Select
   Selection.Copy
   On Error Resume Next
   Application.ScreenUpdating = False
   For Each WS In Worksheets
      WS.Columns("A:F").Sort Key1:=WS.Columns("D"), Order1:=xlAscending, Header:=xlYes
   Next WS
   ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteAll
   Application.ScreenUpdating = True
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...