![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 03.06.2008
Сообщений: 213
|
![]()
Писала в офисе 2002. Тестировала - все работает прекрасно. В офисе 2003 - не работает. Установила у себя 2003 - работает. У других пользователей в 2003 - периодически что-то отваливается. Как же дальше работать, когда я не могу отследить свои ошибки (не ошибки, а непонятки какие-то)?
Например, последняя "ошибка" - ругается и выделяет trim в строчке кода: sNameProd = Range("J6").Value sNameProdN = Trim(sNameProd) У меня не ругается, все четко обрабатывает. Подскажите, плиз, чего я не понимаю? |
![]() |
![]() |
![]() |
#2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
У Вас в проекте VBA стоят ссылки на библиотеки из 2002-й версии.
Удалите эти ссылки (или выложите файл с проектом, мы сами удалим), и всё будет работать. Отключаются ссылки через меню VBA Tools - References |
![]() |
![]() |
![]() |
#3 | |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
![]() Цитата:
Тогда бы (думаю) помогло Код:
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
|
|
![]() |
![]() |
![]() |
#4 | ||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
Например, такая ошибка ![]() может появиться, если в ячейке J6 произошла ошибка вычисления формулы (к примеру, #ДЕЛ/0) Цитата:
При вызове sNameProdN = Trim(sNameProd) срабатывает автоматическое преобразование типов, а, как известно, тип Long (и другие числовые типы) всегда безошибочно преобразуется в String |
||
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 03.06.2008
Сообщений: 213
|
![]()
Не знаю, как рисунок вставить.
Описание Ошибки и рисунок подключенных библиотек во вложении (какие от 2002 - визуально можно определить?). |
![]() |
![]() |
![]() |
#6 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Ну, как я и ожидал... версия с "лишними" библиотеками подтвердилась.
Сам не раз с таким сталкивался. Поначалу я тоже использовал элементы управления из этих библиотек (типа Common Controls, Calendar Control), пока не отдал файл проекта клиенту. Сразу после установки на компе клиента понял, что все вышеуказанные библиотеки были по умолчанию только на моём компе, и пришлось в спешке готовить дистрибутив, который устанавливал и регистрировал в системе недостающие библиотеки. Если Вы хотите, чтобы Ваш файл работал на всех компьютерах, должны быть установлены только эти галочки: (последняя - необязательно, она требуется только при наличии в проекте форм) ![]() В Вашем случае даже сложно сказать, из-за отсутствия какой именно библиотеки вылетает ошибка. Надо в момент появления ошибки "Can't find project or library" отобразить окно Tools - References - перед названием отсутствующей библиотеки будет слово MISSING: Ссылки на библиотеки Office и Excel содержат номер версии. К примеру: 10.0 - Excel 2002 11.0 - Excel 2003 12.0 - Excel 2007 При запуске файла с проектом VBA (созданным в другой версии Office) приложение обычно успешно меняет ссылку на собственную библиотеку (при запуске проекта Excel 2002 в Excel 2003 будет автоматически обновлена ссылка на библиотеку Excel - теперь в окне References будет стоять ссылка на 11-ю версию Excel вместо 10-й), при этом забывая сменить ссылку на библиотеку Office (остаётся ссылка на библиотеку Office 2002) Это и приводит к вышеуказанной ошибке. Ошибка проявляется не на всех компах (зависит от версии Office и сервиспака, а также от количества ранее установленных версий Office) Если Вы не можете отказаться от использования дополнительных элементов управления (как это сделал я в своё время), могу лишь порекомендовать сделать дистрибутив для Вашего проекта (файл Setup.exe) при помощи бесплатной программы типа Inno Setup Пользоваться этой утилитой просто и удобно, а для регистрации библиотек надо добавить в проект Inno всего несколько одинаковых строк вроде этих: Цитата:
|
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 03.06.2008
Сообщений: 213
|
![]()
Спасибо огромадное! Удалила отсутствующую (она же и лишней оказалась) библиотеку. Вроде все запускается. Ну а если опять где-то кобениться будет - сделаю дистрибутив проекта (программулину скачала, разбираюсь пока).
|
![]() |
![]() |
![]() |
#8 |
Новичок
Джуниор
Регистрация: 03.07.2009
Сообщений: 2
|
![]()
Ссылки на библиотеки Office и Excel содержат номер версии.
К примеру: 10.0 - Excel 2002 11.0 - Excel 2003 12.0 - Excel 2007 А если у меня стоит 2000 ексель, в макросе References номер версии 9.0 Как его заставить работать, нету рядом компа с другими версиями ексель чтобы проверить ![]() |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 122
|
![]()
А попробуйте тупо поставить vba.trim вместо просто trim
(при этом после точки подсказчик сработает) Я столкнулся с этим при тестировании с 2003 версии в 2003 с сервиспаком. Причем то же было и с left и с right Похоже, при этом иксел адресуется к текущему приложению... Вдруг поможет, интересно |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Системы контроля версий | crazy horse | Общие вопросы по программированию, компьютерный форум | 0 | 11.12.2008 12:16 |
конфликт файла записей и компонентов формы | Deathwatcher | Общие вопросы Delphi | 9 | 14.11.2008 13:03 |
Конфликт IP адреса ... | Ronni10 | Операционные системы общие вопросы | 4 | 28.02.2008 14:14 |
Delphi разных версий по разному компилируют | Sergey2 | Общие вопросы Delphi | 3 | 12.01.2008 11:45 |
Конфликт Borland C 3.1 с двухъядерными процессорами. | Alexander666 | Помощь студентам | 8 | 23.10.2007 13:19 |