Сброс имен по умолчанию для новых листов (Microsoft Excel)
Питер разработал макрос, который удаляет все рабочие листы в книге, кроме одного под названием «Индекс». Этот макрос работает нормально. Однако после запуска макроса, если он добавляет новый рабочий лист, он ожидает, что он будет называться «Лист1» по умолчанию, но на самом деле он называется более поздним номером, например «Лист3» или «Лист4». Питер задается вопросом, что нужно для сброса нумерации листов до ожидаемого значения по умолчанию.
Самый простой способ сбросить нумерацию листов — просто закрыть книгу и открыть ее снова. Однако это требует ручного вмешательства с вашей стороны. Если вы добавляете новые листы с помощью макроса, вы, вероятно, не захотите вручную закрывать и снова открывать книгу.
При желании вы можете создать простой макрос для выполнения процесса закрытия и повторного открытия. Это будет работать, пока макрос хранится в вашей личной книге макросов, а не в книге, которую вы закрываете.
Sub Reopen() Dim wb As Excel.Workbook Dim sPath As String Set wb = ThisWorkbook sPath = wb.FullName Application.OnTime Now + TimeValue("00:00:01"), _ Application.Workbooks.Open(sPth) wb.Close (True) End Sub
Макрос определяет имя текущей книги, а затем устанавливает событие OnTime для открытия книги через 1 секунду в будущем. Однако в течение этой 1 секунды книга закрывается и сохраняется, что позволяет успешно повторно открыть ее.
При желании вы также можете добавить свои новые рабочие листы с помощью макроса.
Следующий короткий макрос добавляет рабочий лист и сразу же переименовывает его в желаемое имя.
Sub AddWs() Worksheets.Add after:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = "Sheet" & Sheets.Count - 1 End Sub
Вы захотите поиграть с этими решениями и найти, какое из них лучше всего подходит для ваших нужд, особенно если вы хотите интегрировать решение с уже существующим макросом.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (6103) применим к Microsoft Excel 2007, 2010, 2013 и 2016.