gpt4 book ai didi

vba - 将变量/数组作为函数的参数传递

转载 作者:行者123 更新时间:2023-12-04 21:37:34 29 4
gpt4 key购买 nike

示例代码;

Sub functiontester()

Dim testdata As Variant
Dim answer As Long
Dim result1 As Long

testdata = Sheets("worksheet1").Range("E1:E2").Value

result1 = testfunction(testdata)

result2 = testfunction2(testdata(2, 1))

End Sub

Function testfunction(stuff As Variant) As Long

testfunction = stuff(2, 1)

End Function

Function testfunction2(num As Long) As Long

testfunction2 = num

End Function

因此,从我在 python 中的日子开始,我希望 result1 和 result2 都能正常运行,但是在 VBA 中并非如此,如果你尝试运行它,你会得到

结果2中的“编译错误:Byref参数类型不匹配”;我认为这与计算函数参数内部值的限制有关

所以我的问题是:有没有一种简单的方法可以让 result2 工作,以便变体引用只解析到指定的元素?

最佳答案

testdata(2, 1)可能是 Double 类型,而不是 Long。

您可以使用

CLng(testdata(2, 1)) 

将其转换为 Long。

所以:
result2 = testfunction2(CLng(testdata(2, 1)))

应该没事

关于vba - 将变量/数组作为函数的参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31660748/

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