2016-04-16 2 views
1

Следующая тривиальный пример не работает:Как использовать определяемый пользователем тип в функции?

Public Type MyType 
    a As Double 
    b As Integer 
End Type 

Function Test() As Variant 
    Dim x As MyType 
    Test = 2 
End Function 

Compile Error: User-defined type not defined

Как "определить" тип?

+3

Определение типа является декларацией. Таким образом, это должно быть в декларациях ** до ** первой функции или под. См. Https://msdn.microsoft.com/en-us/library/dd897495%28v=office.12%29.aspx –

+0

@AxelRichter Да, вы правы. В моем фактическом коде у меня была функция над объявлением. Я не думал, что это актуально, когда вы отправляете вопрос, но, как вы это указываете. – arman

ответ

1

ваш код компилируется нормально в моем первенствовать 2010

так или иначе было бы не использовать для использования определенного пользователем типа

здесь следует «завершить» пример

Option Explicit 

Public Type MyType 
    a As Double 
    b As Integer 
End Type 

Sub main() 
    Dim x As MyType 

    'initialize fields of your type 
    x.a = 1.2 
    x.b = 1 

    MsgBox Test(x) 
End Sub 


Function Test(x As MyType) As Variant 

    Test = x.a + x.b 

End Function 
Смежные вопросы