Добрый вечер!!! при открытии книги уже созданы листы "лист1", "лист2", "лист3". А надо что бы при открытии книги листы именовались "Январь", "Февраль", "Март" и т.д. при открытии следующих листов
Добрый вечер!!! при открытии книги уже созданы листы "лист1", "лист2", "лист3". А надо что бы при открытии книги листы именовались "Январь", "Февраль", "Март" и т.д. при открытии следующих листовKlevin081085
Сообщение отредактировал Klevin081085 - Пятница, 10.04.2015, 01:44
Sub rename() On Error Resume Next For Each Sh In ThisWorkbook.Sheets Sh.Name = Format(Sh.Index * 30, "mmmm") Next Sh End Sub
[/vba]Правда больше 12 листов не переименуется, т.к. одинаковых имен у листов не должно быть. Можно называть с годом (правда не понятно с каким, текущим?)
И второй недостаток, если лист с таким именем уже есть (напр январь) и стоит он, например, где-нибудь в конце, порядок названий месяцев съедет. Если так не должно быть, нужно либо удалять лист с именем январь, либо перемещать, либо ничего не делать и идти дальше (как в моем коде ) .
Klevin081085, можно так[vba]
Код
Sub rename() On Error Resume Next For Each Sh In ThisWorkbook.Sheets Sh.Name = Format(Sh.Index * 30, "mmmm") Next Sh End Sub
[/vba]Правда больше 12 листов не переименуется, т.к. одинаковых имен у листов не должно быть. Можно называть с годом (правда не понятно с каким, текущим?)
И второй недостаток, если лист с таким именем уже есть (напр январь) и стоит он, например, где-нибудь в конце, порядок названий месяцев съедет. Если так не должно быть, нужно либо удалять лист с именем январь, либо перемещать, либо ничего не делать и идти дальше (как в моем коде ) .Manyasha
ЯД: 410013299366744 WM: R193491431804
Сообщение отредактировал Manyasha - Четверг, 09.04.2015, 23:33
Klevin081085, прочитайте правила и приложите файл. А так же опишите подробнее Вашу задачу, когда должен срабатывать макрос: при открытии книги, при нажатии на кнопку или еще как-то.
Klevin081085, прочитайте правила и приложите файл. А так же опишите подробнее Вашу задачу, когда должен срабатывать макрос: при открытии книги, при нажатии на кнопку или еще как-то.Manyasha
Вот видел макрос создания книги с 12 листами с названиями месяцев, автора не помню [vba]
Код
Sub YearMonthO() Dim intSheetCount As Integer Workbooks.Add Worksheets.Add Count:=12 - _ ActiveWorkbook.Worksheets.Count For intSheetCount = 1 To 12 Worksheets(intSheetCount).Name = _ Format(DateSerial(2000, intSheetCount, 1), "MMMM") Next intSheetCount End Sub
[/vba]
Цитата
А макросом не получится!
Вот видел макрос создания книги с 12 листами с названиями месяцев, автора не помню [vba]
Код
Sub YearMonthO() Dim intSheetCount As Integer Workbooks.Add Worksheets.Add Count:=12 - _ ActiveWorkbook.Worksheets.Count For intSheetCount = 1 To 12 Worksheets(intSheetCount).Name = _ Format(DateSerial(2000, intSheetCount, 1), "MMMM") Next intSheetCount End Sub
Вот вставьте это в модуль книги personal.xls. В самое начало модуля. Только что Вы с этим счастьем будете делать, когда надо будет создать обычную книгу.. [vba]
Код
Option Explicit
Private WithEvents App As Application ' объявляем объект Application для того, чтобы можно было отлавливать события других книг
Private Sub App_NewWorkbook(ByVal Wb As Workbook) Dim i& Wb.Worksheets.Add Count:=12 - _ Wb.Worksheets.Count For i = 1 To 12 Wb.Worksheets(i).Name = Format(i * 30, "mmmm") Next i End Sub
[/vba] Сохраните персонал и перегрузите экс.
Вот вставьте это в модуль книги personal.xls. В самое начало модуля. Только что Вы с этим счастьем будете делать, когда надо будет создать обычную книгу.. [vba]
Код
Option Explicit
Private WithEvents App As Application ' объявляем объект Application для того, чтобы можно было отлавливать события других книг
Private Sub App_NewWorkbook(ByVal Wb As Workbook) Dim i& Wb.Worksheets.Add Count:=12 - _ Wb.Worksheets.Count For i = 1 To 12 Wb.Worksheets(i).Name = Format(i * 30, "mmmm") Next i End Sub
Я проверял для Excel2003, в котором по умолчанию создается книга с тремя листами. Запустите вышеприведенный макрос из любой книги и будет создана новая книга с 12-ю листами с названиями месяцев. Эту новую книгу сохраните как... с нужным вам именем. Удачи!
Цитата
Kuzmich, не получается
Я проверял для Excel2003, в котором по умолчанию создается книга с тремя листами. Запустите вышеприведенный макрос из любой книги и будет создана новая книга с 12-ю листами с названиями месяцев. Эту новую книгу сохраните как... с нужным вам именем. Удачи!Kuzmich