Сортировка листов на основе значения ячейки (Microsoft Excel)
Другие проблемы ExcelTips предоставляют способы сортировки листов в книге на основе имени листа. Однако что, если вы хотите отсортировать листы на основе значения в данной ячейке каждого листа? Например, у вас может быть серия листов с одним и тем же общим макетом, и вы хотите, чтобы листы упорядочивались на основе значения в ячейке H7 каждого листа.
Единственный способ справиться с этим — использовать макрос. Макрос должен пройти по каждому листу в книге, а затем проверить ключевую ячейку на каждом последующем листе, чтобы увидеть, как она сравнивается с той же ячейкой на других листах. Если значение ячейки меньше текущего рабочего листа, то рабочий лист, содержащий меньшее значение, можно переместить.
Sub SortWksByCell() Dim i As Integer Dim j As Integer For i = 1 To Worksheets.Count For j = i To Worksheets.Count If UCase(Worksheets(j).Range("H7")) < _ UCase(Worksheets(i).Range("H7")) Then Worksheets(j).Move Before:=Worksheets(i) End If Next Next End Sub
Обратите внимание на использование метода Move, который выполняет фактическое перемещение листов. Имена листов не имеют значения, только их расположение на основе значения в ячейке H7 каждого листа.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (12448) применим к Microsoft Excel 2007, 2010, 2013 и 2016.
Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:
link: / excel-Ordering_Worksheets_Based_on_a_Cell_Value [Упорядочивание рабочих листов на основе значения ячейки]
.