Тема: VBA: Переименование листа в новой книге
Коллеги, добрый день!
Суть вопроса:
1. Есть книга Excel.
2. Формирую отчет:
- Создаю новую книгу с одним рабочим листом;
- Загружаю в нее шаблон отчета (состоит из 5 листов);
- Сохраняю новую книгу;
3. Из старой книги выбираю и копирую данные в новую (имя листа в старой книге соответствует имени листа с шаблоном отчета в новой);
4. Удаляю лист, созданный при создании новой книги, в названии которого есть "Лист");
5. Сохраняю новую книгу.
Пока все работает, но...
Пришлось реализовать возможность переименования рабочих листов в старой книге (при загрузке книги названия листов сравниваются со списком имен и, при необходимости, переименовываются). Список имен хранится на отдельном листе загружаемой книги и при открытии файла обновляется из файла настроек (что-то, тип .ini файла).
Возникла необходимость сравнить названия листов в новой книге со значением из списка имен и, в случае несовпадения, переименовать.
Вот тут и возникла проблема: Как обратиться к листу в новой книге по CodeName (которое я знаю), чтоб узнать его Name, сравнить его со значением из конкретной ячейки в старой книги и, при необходимости, переименовать?
Windows(newbook).Activate
If Лист2.Name <> Workbooks(oldbook).Sheets("Настройки").Range("J2").Value Then
Лист2.Name = Workbooks(oldbook).Sheets("Настройки").Range("J2").Value
End If
Что не так? Почему, несмотря на то, что новая книга активна, мне выдает Name Лист2 старой книги?