Возврат пользовательских типов в Excel VBA - PullRequest
0 голосов
/ 01 октября 2010

Я некоторое время возился с Excel VBA, но у меня никогда не было формального обучения. У меня есть следующий кусок кода на модуле XLSM:

Public Type ks_solution
    W As Integer
    NF As String
    ID As Integer
End Type

Public Sub MySub()
    //does some things
    MyKSSolution = MyFunction(params)
End Sub

Public Function MyFunction(params) as ks_solution
    //does stuff and returns a ks_solution
End Function

Когда я пытаюсь запустить код, компилятор VBA возвращает ошибку «Только пользовательские типы, определенные в модулях открытых объектов, могут быть принудительно вызваны в вариант или из варианта или переданы функциям с поздней привязкой».

Любая помощь будет принята с благодарностью.

- Юрий

1 Ответ

3 голосов
/ 01 октября 2010

Э-э, неважно. Похоже, проблема была в объявлениях var.

Я думал

Dim v1, v2 as ks_solution

было таким же, как

Dim v1 as ks_solution, v2 as ks_solution

но, видимо, это не так. В первом случае v1 объявляется как вариант. Извините, что нашли время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...