gpt4 book ai didi

vba - 调用从电子表格返回自定义类型的 VBA 函数

转载 作者:行者123 更新时间:2023-12-03 02:02:52 26 4
gpt4 key购买 nike

我有一个返回自定义数据类型的 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)从返回的数组中检索所需的值。

关于vba - 调用从电子表格返回自定义类型的 VBA 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29904678/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com