Страницы: 1
RSS
Как создать метку листа не используя ячейки
 
Добрый день,

поделитесь опытом кто, как решает такой вопрос. Есть макрос(ы) встроенные в надстройку, они должны запускаться только на определенных листах т.е. листах имеющих определенную структуру. Как можно создать метку такого листа, чтобы потом проверить ее макросом. Я сейчас пишу в какую-нибудь ячейку как правило А1, служебный символ, но иногда сам же его затираю, названия книги и листа для этого не подходят т.к. они меняются. Может есть какой-нибудь атрибут листа или что-то в этом роде, что можно использовать и что так просто (пользовательски) не изменить.


Спасибо за идеи.
 
Цитата
YuryK80 написал:
имеющих определенную структуру
так может на нее и ориентироваться.
 
Цитата
Catboyun написал:
так может на нее и ориентироваться.
Слишком просто :), но если серьезно, то на что ориентироваться? на названия столбцов, а вдруг пользователь один удалил, или местами переставил. Вопрос не про конкретную таблицу, вопрос в целом, про идентификацию листа, которую так просто не изменить (удаление, добавление строк столбцов и т.п.)
Изменено: YuryK80 - 03.09.2018 20:03:56
 
Цитата
YuryK80 написал:
а вдруг
тут не подойдет,
Цитата
YuryK80 написал:
определенную структуру
только так.
без файла (структуры) не понятно
 
Код
Worksheets(1).CodeName
Согласие есть продукт при полном непротивлении сторон
 
Хотел сформулировать вопрос более общно, но похоже запутал уважаемых форумчан.

Попробую описать проблему, которую решаю в данное время. В надстройке есть обработчик событий, при выделении ячеек из 1-го столбца и открывает форму, соответственно он срабатывает при выделении 1-го столбца любой книги любого листа (очень раздражает), хочется чтобы форма открывалась только, если первый столбец выделен на определенном листе. Как указать этот лист не использую содержимое ячеек, и имя листа.
 
Цитата
YuryK80 написал: Как указать этот лист не использую содержимое ячеек, и имя листа.
А как бы Вы сами себе это указали? Вот когда ответите на этот вопрос, то же самое объясните надстройке...
Про CodeName я Вам уже написал выше
Согласие есть продукт при полном непротивлении сторон
 
Наиболее не используемо и не совсем просто меняемое Worksheets(1).ScrollArea="$1:$1048576"

Только все рушится если лист будет создан на основании копии листа, что был с меткой.
Изменено: БМВ - 03.09.2018 20:43:18
По вопросам из тем форума, личку не читаю.
 
Доброе время суток
Цитата
YuryK80 написал:
поделитесь опытом кто, как решает такой вопрос....
Как можно создать метку такого листа, чтобы потом проверить ее макросом
Да в общем-то давно решён и применяется.
Изменено: Андрей VG - 03.09.2018 20:38:53
 
Цитата
Sanja написал:
Вот когда ответите на этот вопрос, то же самое объясните надстройке...
В том-то и дело, что я условие сформулировать не могу, хочу чтобы на этом листе запускалась, а на этом нет. А наполнение  листа и прочее не важно. Сейчас я ставлю в ячейку А1= "$$$" и по ним проверяю, а хочется, чтобы не в ячейке.
 
Один из вариантов - свойства книги (к ним есть интерактивный доступ из меню, обычные пользователи туда не ходят). Имя свойства может включать, в частности, внутреннее имя листа (CodeName). Например, MyMacro_Sheet1. Если значение этого свойства 1, то запускаем макрос.
Владимир
 
Цитата
sokol92 написал:
Один из вариантов - свойства книги (к ним есть интерактивный доступ из меню, обычные пользователи туда не ходят
Добрый вечер, Владимир.
Да зачем? Есть же специально для этого Worksheet.CustomProperties
 
Код
CodeName = "$$$_и_ куча кокозябров"
If Left(CodeName, 3) ="$$$" Then Msgdox "Уряяя!"
 
Цитата
Андрей VG написал:
Worksheet.CustomProperties
Слишком скрыто :-). Чтоб установить, надо через код добавить.
По вопросам из тем форума, личку не читаю.
 
Цитата
Андрей VG написал:
Да зачем? Есть же специально для этого Worksheet.CustomProperties
Похоже то, что нужно. Спасибо огромное! Благодарность всем кто принял участие.
 
Цитата
Андрей VG написал:
Есть же специально для этого Worksheet.CustomProperties
Здравствуйте, коллеги! Да, я помню (от Андрея и узнал), однако стандартного интерактивного средства для корректировки CustomProperties нет, в отличие от свойств книги (о чем и Михаил пишет).
Изменено: sokol92 - 03.09.2018 21:33:54
Владимир
 
Можно использовать имя с областью определения лист, т.е. из коллекции Worksheet.Names, и значением например 0.
Имена по умолчанию доступны через Ctrl+F3, но программно имя можно сделать скрытым.
 
Цитата
Казанский написал:
однако стандартного интерактивного средства для корректировки
И это хорошо, не всякие шаловливые ручки дотянутся. У Казанский, в этом смысле, более привлекательное решение.
Изменено: Андрей VG - 03.09.2018 22:16:55
Страницы: 1
Наверх