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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.07.2009, 09:48   #1
nikolai_P
Форумчанин Подтвердите свой е-майл
 
Регистрация: 28.04.2008
Сообщений: 116
Вопрос Ошибки VBA

Добрый день!
Написал макросы на одном компьютере, а запускаю на другом. Возникают следующие ошибки:





Подскажите как решить проблему?
Изображения
Тип файла: gif er1.gif (5.4 Кб, 154 просмотров)
Тип файла: gif er2.gif (4.9 Кб, 122 просмотров)
nikolai_P вне форума Ответить с цитированием
Старый 23.07.2009, 09:52   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

А Вы не пробовали вбить текст сообщений об ошибках в строку поиска Яндекса или Гугла?

http://www.programmersforum.ru/showp...78&postcount=6
http://www.programmersforum.ru/showp...69&postcount=2
EducatedFool вне форума Ответить с цитированием
Старый 23.07.2009, 10:29   #3
nikolai_P
Форумчанин Подтвердите свой е-майл
 
Регистрация: 28.04.2008
Сообщений: 116
По умолчанию Спасибо)

А можно немного поподробнее об этом!
Цитата:
Если Вы не можете отказаться от использования дополнительных элементов управления (как это сделал я в своё время), могу лишь порекомендовать сделать дистрибутив для Вашего проекта (файл Setup.exe) при помощи бесплатной программы типа Inno Setup
Пользоваться этой утилитой просто и удобно, а для регистрации библиотек надо добавить в проект Inno всего несколько одинаковых строк вроде этих:
Цитата:
[Files]
Source: "MSFLXGRD.OCX"; DestDir: "{sys}" ; Flags: regserver sharedfile
Source: "MSWINSCK.OCX"; DestDir: "{sys}" ; Flags: regserver sharedfile
То, что каждому элементу соответствует отдельный файл - это я увидел.
А что означают остальные параметры?
Как, к примеру, мне подключить файл "Microsoft office 12.0 Object Library"
который указан на картинке?
reference.gif
nikolai_P вне форума Ответить с цитированием
Старый 23.07.2009, 10:36   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Как, к примеру, мне подключить файл "Microsoft office 12.0 Object Library"
который указан на картинке?
Он уже подключен. Ничего дополнительно делать не надо.

Цитата:
То, что каждому элементу соответствует отдельный файл - это я увидел.
А что означают остальные параметры?
Не обращайте на это внимание. Вам это не потребуется.
В Вашем случае проблема в другом - макросы разрабатывались в одной версии Office, а используются в другой.
EducatedFool вне форума Ответить с цитированием
Старый 23.07.2009, 10:44   #5
nikolai_P
Форумчанин Подтвердите свой е-майл
 
Регистрация: 28.04.2008
Сообщений: 116
По умолчанию Ошибочка вышла...

EducatedFool, дома (где писал макрос) у меня стоит Office 2007. И на работе (где тестирую) тот же стоит!
Галочку я специально поставил, чтобы выделить необходимый мне объект.

Так, к примеру я отправляю файл заказчику, и вместе с ним файл setup.exe или просто один файл setup.exe. Как сделать так, чтобы у клиента выделилась вышеуказанная библиотека?
nikolai_P вне форума Ответить с цитированием
Старый 23.07.2009, 10:52   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Так, к примеру я отправляю файл заказчику, и вместе с ним файл setup.exe
Вам придётся отправлять вместе с Вашим файлом дистрибутив Excel 2007
Если, конечно, у заказчика установлена более ранняя версия Excel.

Попробуйте сохранить проект в 2003-м Excel. (придётся Вам установить ещё одну версию Excel)
При открытии проекта-2003 в 2007-м вопросов быть не должно.
EducatedFool вне форума Ответить с цитированием
Старый 23.07.2009, 11:35   #7
nikolai_P
Форумчанин Подтвердите свой е-майл
 
Регистрация: 28.04.2008
Сообщений: 116
Радость

Поковырял немного программу. Вот к чему пришел.
Цитата:
[Files]
Source: "MSFLXGRD.OCX"; DestDir: "{sys}" ; Flags: regserver sharedfile
Source: "Файл который нужно установить на компьютер"; DestDir: "Директория назначения"; Flags: regserver sharedfile (значение Flags пока не понял?)

Но получается проблема не в том, что нужно файла нет на используемой машине, а в том, что в не стоит галка в Tools - References.

Можно ли как-то Автоматически , возможно с помощью программы Inno setup проставить нужные галки?
nikolai_P вне форума Ответить с цитированием
Старый 23.07.2009, 11:43   #8
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

1.
Код:
Sub Подключение_библиотеки()' В данном случае Word
On Error Resume Next
ThisWorkbook.VBProject.References.AddFromFile Application.Path & Application.PathSeparator & "MSWORD.OLB"
End Sub
Необходимо знать имя файла нужной библиотеки
2.
Код:
Sub Проверка_библиотек_на_MISSING()
    Dim iReference As Object, iReferences As Object    'или Variant
    Set iReferences = ThisWorkbook.VBProject.References
    For Each iReference In iReferences
        If (iReference.IsBroken) Then _
           iReferences.Remove Reference:=iReference
    Next
End Sub
Для выполнения этих опреций необходимо, чтобы VBProject не был защищен.
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 23.07.2009, 11:55   #9
nikolai_P
Форумчанин Подтвердите свой е-майл
 
Регистрация: 28.04.2008
Сообщений: 116
По умолчанию

Вот еще нашел в хелпе:
"regserver
Регистрация OLE-сервера (он же ActiveX control). Если этот флаг установлен, инсталлятор найдет и выполнит DllRegisterServer для DLL/OCX. Деинсталлятор вызовет DllUnregisterServer. При использовании в комбинации с флагом sharedfile DLL/OCX будет только дерегистрирована, когда связывающий счетчик достигнет нуля.
"
EducatedFool, помоги пожалуйста понять эту строку!
Цитата:
[Files]
Source: "MSFLXGRD.OCX"; DestDir: "{sys}" ; Flags: regserver sharedfile
nikolai_P вне форума Ответить с цитированием
Старый 23.07.2009, 12:13   #10
nikolai_P
Форумчанин Подтвердите свой е-майл
 
Регистрация: 28.04.2008
Сообщений: 116
По умолчанию

The_Prist, можете прокомментировать строку?
Цитата:
If (iReference.IsBroken) Then _
iReferences.Remove Reference:=iReference
nikolai_P вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибки Arcueid1691 Паскаль, Turbo Pascal, PascalABC.NET 15 13.02.2011 15:05
Ошибки Jasper92 Компьютерное железо 6 10.04.2009 19:56
Ошибки delphin100 Операционные системы общие вопросы 12 17.04.2008 14:15
Ошибки Terran Общие вопросы Delphi 3 05.02.2008 20:47