Здравствуйте! Новичёк в макросах. Помогите пожалуйста сделать сортировку столбцов в цикле. Пробовал делать по разному, из того что нашёл в сети – ничего не получается, не понимаю эту тему совсем. Делал что-то вокруг примерно такого: [vba]
Код
For лист = 1 To 5 For столбец = 1 To 5 Sheets(лист).Range(Sheets(лист).Columns(столбец), Sheets(лист).Columns(столбец)).Select Selection.Sort key1:=Range(Sheets(лист).Columns(столбец), Sheets(лист).Columns(столбец)), Order1:=xlDescending Next столбец Next лист
[/vba]
И очень хотелось бы избавится от Select
Заранее благодарен!
Здравствуйте! Новичёк в макросах. Помогите пожалуйста сделать сортировку столбцов в цикле. Пробовал делать по разному, из того что нашёл в сети – ничего не получается, не понимаю эту тему совсем. Делал что-то вокруг примерно такого: [vba]
Код
For лист = 1 To 5 For столбец = 1 To 5 Sheets(лист).Range(Sheets(лист).Columns(столбец), Sheets(лист).Columns(столбец)).Select Selection.Sort key1:=Range(Sheets(лист).Columns(столбец), Sheets(лист).Columns(столбец)), Order1:=xlDescending Next столбец Next лист
Sub Макрос5() Application.ScreenUpdating = 0 For sh_ = 1 To 5 For st_ = 1 To 5 With Sheets(sh_).Sort.SortFields .Clear .Add Key:=Sheets(sh_).Cells(1, st_), Order:=xlDescending End With With Sheets(sh_).Sort With Sheets(sh_) Sheets(sh_).Sort.SetRange .Range(.Cells(1, st_), .Cells(Rows.Count, st_)) End With .Apply End With Next st_ Next sh_ End Sub
[/vba]
Так нужно? [vba]
Код
Sub Макрос5() Application.ScreenUpdating = 0 For sh_ = 1 To 5 For st_ = 1 To 5 With Sheets(sh_).Sort.SortFields .Clear .Add Key:=Sheets(sh_).Cells(1, st_), Order:=xlDescending End With With Sheets(sh_).Sort With Sheets(sh_) Sheets(sh_).Sort.SetRange .Range(.Cells(1, st_), .Cells(Rows.Count, st_)) End With .Apply End With Next st_ Next sh_ End Sub
Boroda Отлично работает! Низкий мой вам поклон и спасибо!
Сам не люблю когда на форумах помогающему цепочкой просьбы идут, но позволю себе наглость и попрошу ещё в такой теме помочь - тема в принципе связана с предыдущей. Нужен макрос: выделяю на листе ячейки и по всем столбцам, которые захватыват выделение должна произойти сортировка при нажатии на кнопку, сортировка КАЖДОГО столбца "индивидуально". То есть саму сортировку теперь после вашего кода я смогу сделать, но не знаю как вычленить номера столбцов из того что я выделил, чтоб передать в тело вашего кода
Boroda Отлично работает! Низкий мой вам поклон и спасибо!
Сам не люблю когда на форумах помогающему цепочкой просьбы идут, но позволю себе наглость и попрошу ещё в такой теме помочь - тема в принципе связана с предыдущей. Нужен макрос: выделяю на листе ячейки и по всем столбцам, которые захватыват выделение должна произойти сортировка при нажатии на кнопку, сортировка КАЖДОГО столбца "индивидуально". То есть саму сортировку теперь после вашего кода я смогу сделать, но не знаю как вычленить номера столбцов из того что я выделил, чтоб передать в тело вашего кодаgiaber
For лист = 1 To 5 For столбец = 1 To 5 Sheets(лист).Columns(столбец).Sort key1:=Sheets(лист).Columns(столбец).Cells(1,1), Order1:=xlDescending Next столбец Next лист
[/vba]
оказывается совсем лаконичная форма записи есть. Я верил и надеялся что можно в одну строчку записать - у меня бзик на лаконичность
For лист = 1 To 5 For столбец = 1 To 5 Sheets(лист).Columns(столбец).Sort key1:=Sheets(лист).Columns(столбец).Cells(1,1), Order1:=xlDescending Next столбец Next лист
[/vba]
оказывается совсем лаконичная форма записи есть. Я верил и надеялся что можно в одну строчку записать - у меня бзик на лаконичность giaber
giaber
Сообщение отредактировал giaber - Понедельник, 21.12.2015, 11:13
Что именно я нарушил? Честно говоря не замечаю своей ошибки и хотел бы знать на будущее, чтоб не повторилось Подозреваю или две темы в одном посте или ссылку на другой форум. [moder]Пока, с некоторой натяжкой, все в порядке. Это я просто предположил, что Вы не прочитали про два вопроса в одной теме. Правда, Ваш вопрос в какой-то мере можно считать уточняющим, поэтому я просто напомнил про Правила. Так, на всякий случай.
Boroda
Цитата
И посмотрите, что написано в Правилах форума
Что именно я нарушил? Честно говоря не замечаю своей ошибки и хотел бы знать на будущее, чтоб не повторилось Подозреваю или две темы в одном посте или ссылку на другой форум. [moder]Пока, с некоторой натяжкой, все в порядке. Это я просто предположил, что Вы не прочитали про два вопроса в одной теме. Правда, Ваш вопрос в какой-то мере можно считать уточняющим, поэтому я просто напомнил про Правила. Так, на всякий случай.giaber
giaber
Сообщение отредактировал _Boroda_ - Понедельник, 21.12.2015, 11:36