Каждый раз, когда я пытаюсь передать UDT другим функциям, я получаю эту ошибку компиляции: «Только пользовательские типы, определенные в публичных объектных модулях, могут быть принудительно применены к варианту или из варианта или переданы в функции с поздними ограничениями».Как я могу работать с определенными пользователем типами?
Единственная внутренняя функция, которую я тестировал, которая работает с UDT в качестве аргумента, - VarPtr. Я даже не могу использовать TypeName или VarType.
Есть ли способ передать UDT как аргументы, явно не ожидающие определенного типа? Вид вроде Variant, но для UDT.
Я также хотел бы хранить UDT в массивах/словарях/коллекциях, но это также кажется проблематичным. UDT звучат идеально для моих нужд (не имея отдельного модуля класса), но кажется, что они очень строго типизированы (если это правильный термин для него).
EDIT: Похоже, что VarPtr ожидает аргумент как «Any», поэтому, возможно, это тот тип, который принимает варианты и UDT. Проблема в том, что VBA IDE, встроенная в Excel, не позволяет мне использовать этот тип.
* Не имея иметь отдельный модуль класса *. Вы не прочитали сообщение об ошибке? –
Все это уже в модуле, а не в модуле класса. Я хочу определить все в одном модуле, а не несколько. –
Наложив это ограничение на себя, вы открываете себя в мир боли –