2015-10-30 2 views
2
Sub Descending_Click() 
Dim j As Integer, k As Integer 
j = Worksheets.Count 
For k = 1 To j 
    Selection.Sort key1:=Range("L2"), Order1:=xlDescending, Header:=xlGuess, _ 
     OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ 
     DataOption1:=xlSortNormal 
Next k 
End Sub 

Я получил код в Интернете и внес изменения в соответствии с моим требованием. Он работает отлично, но работает только на текущем листе, я хочу, чтобы он работал на нескольких листах. Также после запуска все данные выбираются. После запуска данных не следует выбирать. Нужна экспертная помощь.данные сортировки в порядке убывания в нескольких листах

ответ

0

Вы должны прокручивать каждый рабочий лист и действовать на этом листе. Поскольку ваш код написан, нет спецификации для прокрутки листов или для работы на любом конкретном листе. Оператор Selection работает только с тем, что активно выбрано в этот момент.

Sub Descending_Click() 
Dim ws as Worksheet 
For Each ws in Worksheets 
    ws.UsedRange.Sort key1:=Range("L2"), Order1:=xlDescending, Header:=xlGuess, _ 
     OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ 
     DataOption1:=xlSortNormal 
Next ws 
End Sub 

'Note: you made need to specify the exact range on the worksheet, depending on how your data is set up. In that case, replace UsedRange with Range("A1:K100") or whatever your range actually is. 
+0

Спасибо Скотт ............ штраф ........... мелкие изменения сделаны ......... следующий ws in place next k –

+0

хороший catch @KISHORBHOIR! Я редактировал свой пост. Пожалуйста, отметьте как ответ, если он действительно решит вашу проблему. –

Смежные вопросы