Я считаю, что то, что я собираюсь спросить, является ограничением, но я надеюсь, что найдется удовлетворительное решение.
Я работаю с несколькими файлами / книгами и намереваюсь сохранить код, связанный сданных как можно больше.Поэтому я хочу иметь возможность связывать одну процедуру с другой в разных проектах.
Я хотел бы иметь возможность передавать свои аргументы в определяемом пользователем типе при компоновке, но возникла следующая ошибка компилятора:
Только пользовательские типы, определенные в общедоступных объектных модулях, могут быть приведены к или из варианта или переданы функциям с поздней привязкой
Я обнаружил, что яЭта проблема возникает только тогда, когда я использую Application.Run , а не когда я выполняю оператор Call .Однако я не мог заставить Звонить для работы в разных проектах.Последующее чтение, кажется, подтверждает это.(Я читал, что Application.Run не передает ByRef , и также очевидно, что UDT могут проходить только ByRef ).Похоже, я застрял.Вот пример кода, иллюстрирующий точку
Option Explicit
Public Type type1
s As String
End Type
Public Sub main()
Dim t As type1
Application.Run "Book2!Freda", t
End Sub
Application.Run "Book2! Freda", t , где возникает ошибка компилятора