所以我有一个这样的UDT设置:
Public Type UserInfo
name as string
username as string
active_time as double
End Type
然后我创建了一个这种类型的数组:
Dim list_of_users() as UserInfo
'Populate array here
我想要做的是将active_time值作为数组传递给单独的函数。类似的东西:
'StdDev function defined elsewhere
standard_dev_all = StdDev(list_of_users().active_time)
这甚至可能吗?我想我可以修改函数来处理我的UDT,但是我有更多的值而不仅仅是active_time,看起来这会让它变得非常混乱。
答案 0 :(得分:1)
您不能将其作为
传递UDTvariable.Element
' or
UDTvariable().Element
成功能。我的意思是,
解决方案是传递给你的功能
Answer = Stdev(UDTVariable)
并在函数内部执行此操作
Function Stdev(ByRef UDTVariableTypeName UDTVariable)
for i = 1 to N
Something = UDTVariable(i).Element
' so on and so forth
next i
Stdev = SomeAnswer
End Function
你可以省略写ByRef
,因为这是传递参数的默认方式,但我为了清楚起见保留了它。