【发布时间】:2021-06-10 12:53:29
【问题描述】:
我正在尝试在 VBA 中创建一个 UDF,它将多个大小相等的数组作为参数,然后循环遍历它们,并保持每个数组的相同索引。
我已将代码设置如下。
Public Function TwoArrays(TargetRange(), CriteriaRange())
dim value as range
for each value in TargetRange
next
end function
问题是我无法获取 TargetRange 的索引以在 CriteriaRange 中使用,即使无论出于何种原因我都可以使用类似
CriteriaRange(2)
我得到一个错误,而不是该索引中发生的情况。
有没有办法让 UDF 将数组视为普通 VBA 数组,我可以按照以下方式做一些事情
Public Function TwoArrays(TargetRange(), CriteriaRange())
dim result as range
for i = lowerbound(TargetRange) to ubound(TargetRange)
If CriteriaRange(i) > 0 then
result = result + TargetRange(i)
end if
next i
end function
谢谢!
【问题讨论】:
-
您似乎将
Ranges 和数组混为一谈。可能值得一读cpearson.com/excel/ArraysAndRanges.aspx -
即使删除“as range”或将其更改为其他内容也不会影响我的问题。
-
对,因为来自
Range的Variant数组是二维的,您不应该使用For Each循环...您是否阅读了引用的链接?
标签: arrays excel vba user-defined-functions