![]() |
Модераторы: mihanik |
![]() ![]() ![]() |
|
НеуФазендник |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 9.5.2006 Репутация: нет Всего: 2 |
Доброго здравия всем! Помогите решить проблемку.
У меня есть пакет макросов VBA, который был написан мною собственноручно. Он пережил уже 2 ноутбука и 3 обычных компьютера, на которых работал без сбоев. Он работал под office ХP и под 2003. Но вот недавно перенес его на новую машину. Нулёвый комп. На нем чистая инсталляция Win ХP и 2003 office. Всё как всегда. Ничего нестандартного. НО!!! Не работают мои макросы в Excele по банальной причине: Интерпретатор VBA пытается искать описание ряда необьявленных переменных, и не находя его стопорится с сообщением - неизвестная функция. Стоит прописать явно через Dim - и всё работает. Но - таких неописанных переменных в этом пакете подпрограмм у меня более 1000. Я буду неделю его переделывать. Интерпретатор (компиллятор может) не признает option explicit с какими-либо параметрами. Детальной контекстной справки тоже нет. Как отключить явное описание переменных? Подскажите пожалуйста! |
|||
|
||||
mihanik |
|
|||
![]() -=Белый Медведь=- ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 4054 Регистрация: 24.4.2006 Где: г. Тверь Репутация: 9 Всего: 109 |
Tools / Options
Снять галку с Require Variable Declaration Должно помочь... |
|||
|
||||
НеуФазендник |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 9.5.2006 Репутация: нет Всего: 2 |
Спасибо. Я тоже думал, что там должно быть. Но что-то не смог ничего изменить.
Толи невнимательно смотрел, то-ли не помогла галка. Нет этого компа сейчас рядом. В понедельник еще проверю. Надеюсь на лучшее - что я - дятел ![]() ![]() Помнится мне, что я смотрел в VBA Project properties, а не в Options. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20580 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
Нет. Эта установка управляет всего лишь автоматическим (не)добавлением строки Option Explicit в начало любого новосоздаваемого модуля, и не влияет на уже существующие. НеуФазендник, тебе придется вручную удалить (но лучше - закомментировать) строки Option Explicit во всех модулях. Но рассматривай это как временную меру - то есть все-таки внеси в код все необходимые декларации и затем раскомментируй эту строку. На будущее - не пренебрегай Option Explicit. Она порой помогает вылавливать ляпы, которые без нее можно искать месяцами, и не находить... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
НеуФазендник |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 9.5.2006 Репутация: нет Всего: 2 |
Проверил. Галка действительно не при чем.
Akina, вся фишка в том, что я не ставил нигде Option Explicit . А если его добавил редактор??, то по крайней мере стандартный поиск по модулю (проекту)его не находит. Т.е. в моём проекте он, вроде как, не присутствует. Вот беда-то. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20580 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
Исключено. Впрочем, можно прверить - скопируй текст в новый модуль, старый прибей... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
НеуФазендник |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 9.5.2006 Репутация: нет Всего: 2 |
Не совсем понял, что именно будет проверенно копированием. Поиск по <Сtrl>-<F> не находит во всем модуле ни одного Explicit. Или предложение скопировать - просто как вариант шаманской операции, которая может вправить мозги интерпретатору/компилятору? (- до сих пор не знаю, компилирует VBA или интерпретирует, или это вообще гибрид обех операций ![]() Это сообщение отредактировал(а) НеуФазендник - 1.9.2007, 20:28 |
|||
|
||||
НеуФазендник |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 9.5.2006 Репутация: нет Всего: 2 |
Ура. Копирование спасло.
Но скопировать, создав новый модуль и прибить старый оказалось мало. Пришлось еще и по отдельности скопировать все рабочие листы в новую книгу. Вот так всё заработало. Вот же , блин, чудо техника. Спасибо. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20580 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
Не стОит списывать последствия "грязного стиля программирования" на технику. ИМХО. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
mihanik |
|
|||
![]() -=Белый Медведь=- ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 4054 Регистрация: 24.4.2006 Где: г. Тверь Репутация: 9 Всего: 109 |
Помечу решённым!!!
Модератор: Граждане!!! Не забывайте помечать вопросы решёными!!! |
|||
|
||||
НеуФазендник |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 9.5.2006 Репутация: нет Всего: 2 |
||||
|
||||
kall1sto |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 19.10.2007 Репутация: нет Всего: нет |
У меня возникла таже ситуации, все начиналось с темы начало там при копировании на другой комп, все переменные не определены. Как я поимаю должно быть либо explicit либо не стоять галка Require Variable Declaration
так? мои действия. 1. Скопировал. Запустил не работает. 2. Прописал везде explicit. Запустил не работает. Закрыл без сохранения. 3. Открыл. Думаю уберу галку с Require Variable Declaration, но она не стоит, поставил проверил, таже фигня... че делать.? Добавлено через 4 минуты и 3 секунды На выходных не смогу проверить, в понедельник проверю. Это сообщение отредактировал(а) kall1sto - 26.10.2007, 17:55 |
|||
|
||||
kapbepucm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 993 Регистрация: 14.6.2007 Где: Латвия Репутация: 3 Всего: 12 |
kall1sto, a в чём проблема переменные объявить- их же там не много? См. мой код на 2 странице. Отрывок:
![]() Это сообщение отредактировал(а) kapbepucm - 29.10.2007, 09:39 -------------------- (С) kapbepucm |
|||
|
||||
kall1sto |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 19.10.2007 Репутация: нет Всего: нет |
я согласен тоже прописал все, сейчас выкидывает на слове Right... я думаю это таже проблема, (нет какой-то библиоетки, которая и переменные объявляет и некоторый синтаксис....
|
|||
|
||||
kapbepucm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 993 Регистрация: 14.6.2007 Где: Латвия Репутация: 3 Всего: 12 |
Выкидывает на первой и второй машине? Или только на второй?
-------------------- (С) kapbepucm |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Программирование, связанное с MS Office" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |