Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
19.04.2024, 20:40:48

Войти
На форуме добавлена возможность подписки на RSS-ленты любого раздела форума. Подписаться можно, нажав на иконку RSS , расположенную левее наименования раздела.
33 242 Сообщений в 5 457 Тем от 6 758 Пользователей
Последний пользователь: Сергей2662
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Баги и глюки при работе с Excel и VBA
| | |-+  Проблема с приданием свойств Property Get
Страниц: [1]   Вниз
Печать
Автор Тема: Проблема с приданием свойств Property Get  (Прочитано 12847 раз)
0 Пользователей и 1 Гость смотрят эту тему.
PVNaiton
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 4


Просмотр профиля
« : 08.07.2013, 13:44:42 »

При работе в VBA в Office 2010 (Exel) появилась проблема. После придания свойств листам и книге с помощью кода Property Get в редакторе VBA все, что связано с опознованием данных свойств, работает. Сохраняешь  файл как в редакторе VBA, так и при выходе из  Exel. Запускаешь все заново – чисто. Свойств книги и листов не видно (в редакторе VBA). Все что завязано на данных свойствах  - не работает. В более ранних версиях Office (Exel), например – 2003, 2007 – все видно, все работает.  Решить проблему не удается.
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 831



Просмотр профиля WWW
« Ответ #1 : 08.07.2013, 14:30:59 »

Что значит "свойств не видно"? Не видно где? Какие именно свойства? Что содержится в процедуре Property Get?
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
PVNaiton
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 4


Просмотр профиля
« Ответ #2 : 08.07.2013, 15:12:59 »

Что значит "свойств не видно"? Не видно где? Какие именно свойства? Что содержится в процедуре Property Get?
В окне Project  - VBA Project  кликаешь на «Эта книга» и в окне кодов набираешь коды
Public Property Get Пуск()
 Пуск = 1
End Property
Public Property Get Пуск1()
 Пуск1 = 2
End Property
Все это сохраняешь.
Пока файл не закрыт, то надстройка Exel, созданная в предыдущих версиях, с данными файлами работает.  После закрытия файла с сохранением и новым запуском надстройка этот файл не признает, а в окне кодов для «Эта книга» данного кода нет.
В предыдущих версиях ничего подобного нет.
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 831



Просмотр профиля WWW
« Ответ #3 : 08.07.2013, 15:22:08 »

Вообще не принято в ЭтаКнига подобное писать. Создайте отдельный модуль класса и попробуйте в нем - они для этого и предназначены.
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
PVNaiton
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 4


Просмотр профиля
« Ответ #4 : 08.07.2013, 15:59:14 »

Вообще не принято в ЭтаКнига подобное писать. Создайте отдельный модуль класса и попробуйте в нем - они для этого и предназначены.
Но это еще не все. Аналогичные свойства автоматически придаются отдельным листам, чтобы их можно было обсчитывать. Их также не остается. А с 2005 года много файлов осталось. С некоторыми приходится работать. А так придется переделывать всю надстройку с приложениями и со старыми файлами не поработаешь. Проще, наверное, оставить старый офис.  Но все таки интересно, почему раньше с присвоением свойств книге и отдельным листам проблем не было, а в Exel - 2010 появились.
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 831



Просмотр профиля WWW
« Ответ #5 : 08.07.2013, 17:34:20 »

Потому что ничего не стоит на месте и некоторые методы и свойства меняются, замещаются, перерабатываются и совершенствуются.
И насколько помню свойства листам и книгам можно(и даже нужно) назначать не как в ООП, а через равенство(Sheets(1).Name = "First"). А VBA уже внутри себя реализует процедуры Let, Get и Set.
Вот если Вы подобными процедурами присваиваете и считываете свойства своих объектов и переменных - то это поддерживалось и поддерживается сейчас.
Вы бы все же привели хоть один нормальный код с этими процедурами и написали, что не работает.
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
PVNaiton
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 4


Просмотр профиля
« Ответ #6 : 08.07.2013, 19:54:55 »

Потому что ничего не стоит на месте и некоторые методы и свойства меняются, замещаются, перерабатываются и совершенствуются.
И насколько помню свойства листам и книгам можно(и даже нужно) назначать не как в ООП, а через равенство(Sheets(1).Name = "First"). А VBA уже внутри себя реализует процедуры Let, Get и Set.
Вот если Вы подобными процедурами присваиваете и считываете свойства своих объектов и переменных - то это поддерживалось и поддерживается сейчас.
Вы бы все же привели хоть один нормальный код с этими процедурами и написали, что не работает.

Все дело в том, что программа должна проверить свойство книг, независимо от их имени и прочих параметров, расширений и т.д. Если значение одно, то этот файл обрабатывает одна подпрограмма, если другое, то другая, а если этого значения нет, то- выход из программы. Также и с листами. Поэтому проще всего было и присвоить всем нужным файлам и листам какое-либо-свойство, проверяемое программой. Тем более эти свойсива устанавливаются при их создании. И в последней версии VBA их распознает, обрабатывает и работает. Проблема только в том, что при открытии файлов с данными свойствами эти свойства и коды становятся невидимыми. Почему - не понятно. Написал вручную (или скопировал) - все работает. Открываешь заново - нет.
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 831



Просмотр профиля WWW
« Ответ #7 : 08.07.2013, 20:37:46 »

Все равно не понимаю к чему такие трудности, хотя это Ваше дело. Всю жизнь использовали для этих целей скрытые листы или имена. Плюс Properties документа.
Да и как я понял Вы создавали свойства, которые не были изначально заложены в лист или книгу. А это уже на мой взгляд несколько неверно. Или я все неверно понял.
Без понятия что Вы там конкретно делаете ничего сказать с точностью нельзя, тем более помочь. Могу сказать одно - это явно не баг. Скорее всего использование каких-то свойств и методов не по назначению и привело к подобной ситуации.
В чем сложность показать кусок кода, являющегося причиной ошибки? Без него вряд ли кто-то что-то скажет путное. Одни дебаты...
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru