VBA新手在这里。我正在尝试传递一个数组(它是静态的,但也请回答动态范围) 到一个函数。然后将各个数组元素分配给唯一变量,并在自定义公式中使用这些变量。我只是浏览了一下并编写了代码,但不断收到#VALUE!错误。代码要点如下:
Public Function mytest(ByRef arr1 As Range)
Dim A As Double
Dim B As Double
A = arr1(0)
B = arr1(1)
mytest = A + B 'The actual formula is a bit more complicated than simple addition
End Function
我根本不知道我做错了什么。如果有人有解决方案,请您解释一下为什么它也有效。我感谢我能得到的所有帮助。
非常感谢 !
正如科尔曼指出的,范围不是数组,请考虑:
Public Function mytest(ByRef arr1 As Range)
Dim A As Double
Dim B As Double
A = arr1(1, 1)
B = arr1(2, 1)
mytest = A + B 'The actual formula is a bit more complicated than simple addition
End Function
NOTE:
- 我们对待
Range
类似于数组
- 它是二维的
- it is 1 based
- 如果你只处理
Range's
值,您可以在函数中创建一个内部数组,直接映射到传递的Range
.
- if the
Range
是真正动态的,(如溢出范围)那么你需要通过的就是锚单元。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)