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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2011, 14:43   #1
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию Программно изменить кодовое имя листа

Нужно САБЖ. В инете нашел вот это:
=====
Несмотря на то, что свойство CodeName доступно только для чтения, программное имя рабочего листа можно изменять, если не забывать, что модуль входит в семейство VBComponents.
iCodeName = ActiveSheet.CodeName

Application.VBE.ActiveVBProject.VBC omponents(iCodeName).Name = "CodeName" ' Вариант I.

ActiveWorkbook.VBProject.VBComponen ts(iCodeName).Name = "CodeName" ' Вариант II.
=====
При использовании обоих получаю сообщение: "Run-time error 1004. Программный доступ к проекту Visual Basic не является доверительным".
После выдается сообщение:"Run-time error 50132. Method 'Name' of object '_VBComponent' failed

Как решить проблему?
С уважением, Алексей.

Последний раз редактировалось tae1980; 25.01.2011 в 15:42.
tae1980 вне форума Ответить с цитированием
Старый 25.01.2011, 15:48   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Галку в настройках Экселя ставили?
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 25.01.2011, 16:35   #3
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Галку в настройках Экселя ставили?
Ставил. После первое сообщение пропало.
Как следствие еще один вопрос: как ставить эту галку из VBA?
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 25.01.2011, 17:23   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Должно быть - никак. Но вдруг...
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 25.01.2011, 20:39   #5
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Должно быть - никак. Но вдруг...
Вопрос все еще открыт, так как идет ругань: "Run-time error 50132. Method 'Name' of object '_VBComponent' failed"
АЛЛ Как лечиться?
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 25.01.2011, 21:48   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

У меня работает этот код, оба варианта. Единственное, после переименования в "CodeName" далее не переименовывает. Лучше другое имя давать... "CodeNameNNN" например.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 25.01.2011, 22:05   #7
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
У меня работает этот код, оба варианта. Единственное, после переименования в "CodeName" далее не переименовывает. Лучше другое имя давать... "CodeNameNNN" например.
Заработало, но только если писать текст вида "Тескт", а вот если пытаться писать переменную то выдает эту ошибку. ((( А мне нужно именно переменную, так имя составное. Кто знает как быть?
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 25.01.2011, 22:46   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Пишет:
Код:
iiCodeName = ActiveSheet.CodeName
temp = "xxx"
ActiveWorkbook.VBProject.VBComponents(iCodeName).Name = temp ' Вариант II.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 26.01.2011, 00:01   #9
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Пишет:
Код:
iiCodeName = ActiveSheet.CodeName
temp = "xxx"
ActiveWorkbook.VBProject.VBComponents(iCodeName).Name = temp ' Вариант II.
Спасибо! Разобрался. Проблема была в наличие в тексте знака "~".
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добыть имя листа gregory1b Microsoft Office Excel 4 09.12.2010 10:50
Изменить имя переменной(программно) welcomeTo Общие вопросы .NET 2 09.12.2010 10:15
Имя листа в зависимости от ячейки bud-dy Microsoft Office Excel 5 05.02.2010 14:22
Имя листа Sensy Microsoft Office Excel 2 14.12.2009 17:23
Получение имя листа из ячейки. Sergg Microsoft Office Excel 4 11.09.2009 17:21