Сортировка листов на основе значения ячейки (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.
Этот совет (2890) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:
link: / excelribbon-Ordering_Worksheets_Based_on_a_Cell_Value [Упорядочивание рабочих листов на основе значения ячейки]
.