[英]Call VBA function that returns custom type from spreadsheet
我有一个vba函数,返回一个自定义数据类型,定义为:
Public Type stockValue
stock As String
value As Double
End Type
我的问题是,当我从电子表格单元格调用函数时,该如何处理? 例如,假设我希望单元格确实显示stock
价值,我尝试过=function().stock
,但它不起作用
任何帮助表示赞赏,谢谢!
Function getLowestPnl(strat As String, rank As Integer) As stockValue
Call Conecta_DB(conexao)
Set registros = New ADODB.Recordset
strSQL = "SELECT stock,sum([value]) FROM Reports.dbo.Entry WHERE idStrategy='" & strat & "' and idType=1 GROUP BY stock ORDER BY sum([value])"
'strSQL = "SELECT [finance],[sales],[management],[research],[administration] FROM [COS].[dbo].[Complementarity] WHERE [idCompany] =" & idCompany & " and [year]=" & year & " and [CEO]=1"
registros.Open strSQL, conexao, adOpenStatic, adLockOptimistic
parar = False
If Not registros.EOF Then
x = registros.GetRows()
i = 0
Do While parar <> True
If i = (rank - 1) Then
getLargestShortExp.stock = Trim(x(0, i))
getLargestShortExp.value = x(1, i)
parar = True
End If
i = i + 1
Loop
End If
registros.Close
getLowestPnl = ret
End Function
您只能返回Excel从用户定义的函数中可以理解的数据类型。 Excel无法理解自定义数据类型。
相反,您将必须返回一个自定义数据类型中包含2个值的变量数组。 然后,您可以将函数数组输入2个单元格中,或者使用另一个函数(如INDEX)从返回的数组中检索所需的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.