powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Можно ли использовать public переменные одного проекта в другом
11 сообщений из 11, страница 1 из 1
Можно ли использовать public переменные одного проекта в другом
    #33645841
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно сабж.

Есть один проект закрытый паролем, в нем есть модуль с константами. Можно ли использовать эти константы в другом проекте.

В хелпе написан способ обращения MyProject.MyModule.MyVar. Однако мой проект называется также, как и тот, из которого я хочу импортировать константы. поэтому стучусь туда как [MyProject.xla].[MyModule].MyVar. Не помогает.

Как вылечить?
_________________________
Любой чайник на 80% состоит из воды!
...
Рейтинг: 0 / 0
Можно ли использовать public переменные одного проекта в другом
    #33645972
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл указать. Имеется в виду проект VBA! Используется в Excel.
_________________________
Любой чайник на 80% состоит из воды!
...
Рейтинг: 0 / 0
Можно ли использовать public переменные одного проекта в другом
    #33646182
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если переименовать проект? (F4)
...
Рейтинг: 0 / 0
Можно ли использовать public переменные одного проекта в другом
    #33646210
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наверно так
Код: plaintext
Application.Workbooks("...xla").MyProject.MyModule.MyVar
...
Рейтинг: 0 / 0
Можно ли использовать public переменные одного проекта в другом
    #33646237
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да нет, думаю, что дело все таки не в этом...

Он говорит: Error 424 Object Required. Даже если переименовать...
...
Рейтинг: 0 / 0
Можно ли использовать public переменные одного проекта в другом
    #33646261
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А по
vkodorApplication.Workbooks("...xla").MyProject.MyModule.MyVar
говорит:438 object doesn't support this property or method.
...
Рейтинг: 0 / 0
Можно ли использовать public переменные одного проекта в другом
    #33646522
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть два способа.

1. Подключи надстройку в книге Tools->References...

Надстройка (стандартный модуль).

Код: plaintext
Public MyVar As Variant

Книга.

Код: plaintext
1.
2.
3.
4.
5.
6.
Sub SetVar()
    MyProj.Module1.MyVar = "AAA"
End Sub

Sub GetVar()
    MsgBox MyProj.Module1.MyVar
End Sub

2. Можно обойтись без ссылки, но надстройку, загружать все равно придется.

Надстройка.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Public MyVar As Variant

Public Function MyFuncGet() As Variant
    MyFuncGet = MyVar
End Function

Public Function MyFuncSet( _
  varValue As Variant)
    MyVar = varValue
End Function

Книга.

Код: plaintext
1.
2.
    Application.Run "Книга1.xla!MyFuncSet", "Test!"
    
    MsgBox Application.Run("Книга1.xla!MyFuncGet")
...
Рейтинг: 0 / 0
Можно ли использовать public переменные одного проекта в другом
    #33646851
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я правильно понял, то эту надстройку надо реализовывать в модуле, из которого я хочу получить переменные? Но он неизменяемый... :-(
...
Рейтинг: 0 / 0
Можно ли использовать public переменные одного проекта в другом
    #33646931
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне показалось, что ты используешь надстройку. Но это особо не меняет положение, только теперь вместо надстройки, тебе нужно подключить книгу.

В книге2, в проекте, в котором хочешь использовать переменную из проекта книги1, подключи книгу1, Tools->References...->Browse->Тип файлов - "xla, xls".

Книга1.

Код: plaintext
Public MyVar As Variant

Книга2.

Код: plaintext
1.
2.
3.
4.
5.
6.
Sub SetVar()
    MyProj.MyModule.MyVar = "Test!"
End Sub

Sub GetVar()
    MsgBox MyProj.MyModule.MyVar
End Sub
...
Рейтинг: 0 / 0
Можно ли использовать public переменные одного проекта в другом
    #33647392
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A!!! Гран мерси!

А теперь самое интересное!

Если эти константы лежат в
Код: plaintext
Option Private Module
, можно их как то достать из другого модуля?
...
Рейтинг: 0 / 0
Можно ли использовать public переменные одного проекта в другом
    #33647658
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GuDVinOption Private Module, можно их как то достать из другого модуля?
Из друго модуля этого проекта - да, из модуля другого проекта - нет.

Option Private ModulePublic variables and procedures will still be available to other procedures in the current project, but not to referencing projects.
Но все-таки, если хочешь из другого проекта, то можешь попробовать такой вариант.

Проект1, модуль1.

Код: plaintext
1.
2.
3.
Option Explicit
Option Private Module

Public Const MyVar As String = "Test"

Проект1, модуль2.

Код: plaintext
1.
2.
Public Function MyFuncGet() As String
    MyFuncGet = MyVar
End Function

Проект2.

Код: plaintext
    MsgBox MyProj.MyFuncGet
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Можно ли использовать public переменные одного проекта в другом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]