Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2010, 14:03   #1
bud-dy
Пользователь
 
Регистрация: 29.06.2009
Сообщений: 15
По умолчанию Создание листа с определенным именем.

Здравствуйте. Такая проблема.
Нужно создать лист с определенным именем Лист1.
Это мне нужно для того, что бы при переборе листов перебор начинался с Лист2
В книге уже есть несколько листов:
Лист2 "зал"
Лист3 "отчет"
Sheets.Add.Name = "Лист1" создает лист с таким именем, но на самом деле Excel видит его как Лист4 с именем "Лист1" и вся затея пропадает.
Помогите! =)
bud-dy вне форума Ответить с цитированием
Старый 24.06.2010, 14:07   #2
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Что ж мешает вручную создавать листы и по надобности переименовывать их?
_-Re@l-_ вне форума Ответить с цитированием
Старый 24.06.2010, 14:32   #3
bud-dy
Пользователь
 
Регистрация: 29.06.2009
Сообщений: 15
По умолчанию

Наверное я не правильно объяснил суть проблемы.
Sheets.Add.Name = "Свод" создает лист с именем "Свод". Если листов 10, то он создает Лист 11 с именем "Свод", а мне нужно что бы создавался Лист1 с именем "Свод".
bud-dy вне форума Ответить с цитированием
Старый 24.06.2010, 15:02   #4
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Я сам про такое ничего не знаю,но может есть что-нибудь подобное:
Код:
Sheets[1].Name:='Свод';
Но повторюсь: про программную работу с Excel ничего не знаю
_-Re@l-_ вне форума Ответить с цитированием
Старый 24.06.2010, 15:58   #5
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

Цитата:
Сообщение от bud-dy Посмотреть сообщение
Наверное я не правильно объяснил суть проблемы.
Sheets.Add.Name = "Свод" создает лист с именем "Свод". Если листов 10, то он создает Лист 11 с именем "Свод", а мне нужно что бы создавался Лист1 с именем "Свод".
Вы говорите об "индексе" листа. Все листы книги номеруются, в том числе скрытые. Новый лист будет иметь индекс 1, если сделать так (первый лист в книге, например, "Лист1"):

Код:
Sheets.Add Before:=Sheets("Лист1"): Activesheet.Name="NewSheet"
Проверьте его индекс, он будет первым:

В окне Immediate (Ctrl+G):

Код:
?sheets("NewSheet").Index
EugeneS вне форума Ответить с цитированием
Старый 24.06.2010, 16:45   #6
alvazor
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 122
По умолчанию

Цитата:
Сообщение от EugeneS Посмотреть сообщение
Вы говорите об "индексе" листа. Все листы книги номеруются, в том числе скрытые. Новый лист будет иметь индекс 1, если сделать так (первый лист в книге, например, "Лист1"):

Код:
Sheets.Add Before:=Sheets("Лист1"): Activesheet.Name="NewSheet"
Проверьте его индекс, он будет первым:

В окне Immediate (Ctrl+G):

Код:
?sheets("NewSheet").Index
Совершенно верно! Хотя при этом в vba у второго листа в скобках Вы бы опять-таки увидели (Лист1). Посмотрите пример во вложении - вроде там все наглядно видно. В книге вообще нет (Лист1) и ряда других
Вам-то явно важно, чтобы добавляемый лист имел адрес Sheets(1) и был первым в книге, или не так?
Вложения
Тип файла: rar Вставка_листа.rar (10.8 Кб, 141 просмотров)
alvazor вне форума Ответить с цитированием
Старый 24.06.2010, 17:50   #7
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

так и в чем вопрос?

Цитата:
Сообщение от alvazor Посмотреть сообщение
Совершенно верно! Хотя при этом в vba у второго листа в скобках Вы бы опять-таки увидели (Лист1). Посмотрите пример во вложении - вроде там все наглядно видно. В книге вообще нет (Лист1) и ряда других
Вам-то явно важно, чтобы добавляемый лист имел адрес Sheets(1) и был первым в книге, или не так?
В Вашем примере создается лист с именем "СВОД", индекс единица, что не так?

Последний раз редактировалось EugeneS; 24.06.2010 в 17:55.
EugeneS вне форума Ответить с цитированием
Старый 25.06.2010, 08:30   #8
alvazor
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 122
По умолчанию

Да не к Вам вопрос, Евгений, к автору темы, я просто в подтверждение Вашей правоты еще и пример бросил -)
alvazor вне форума Ответить с цитированием
Старый 25.06.2010, 15:29   #9
bud-dy
Пользователь
 
Регистрация: 29.06.2009
Сообщений: 15
По умолчанию

Да вроде все так, но в Propeties (F4) когда выбираю лист "СВОД", то Name у него - Лист5, Лист6 и т.д., смотря сколько раз он удалялся и создавался.
А если смотреть по коду, то все верно и все работает.
Вот такая странность или я не догоняю чтото.
Спасибо.!
bud-dy вне форума Ответить с цитированием
Старый 25.06.2010, 15:45   #10
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
то Name у него - Лист5, Лист6 и т.д., смотря сколько раз он удалялся и создавался.
Это не Name (имя листа), а Codename (кодовое имя листа)
Хотя название свойства и отображается как Name, на самом деле это Codename.

Можно, конечно, изменить и кодовое имя листа, но это намного сложнее.
Да и доступ к объектной модели надо включать в настройках Excel.

Если вы в коде не работаете именно с кодовыми именами листов - то просто не обращайте внимание на эти имена.
EducatedFool вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание дроп листа в зависимости от значения ячейки Brucebelg Microsoft Office Excel 2 18.05.2010 14:05
Создание листа с одновременным созданием формулы на ячейку нового листа ShamanK Microsoft Office Excel 4 02.05.2010 22:00
Создание книги и перенос данных листа в дргую несуществующюю книгу OgE®_M@G Microsoft Office Excel 23 13.11.2009 06:35
Автоматическое создание листа с названием текущего месяца из шаблона ru3000 Microsoft Office Excel 3 06.08.2009 09:58
создание нового листа cathie Microsoft Office Excel 2 12.12.2007 15:49