arrays - VBA UDF 多个数组参数
问题描述
我正在尝试在 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
谢谢!
解决方案
像这样:
Public Function TwoArrays(TargetRange As Range, CriteriaRange As Range)
Dim result, arrT, arrC, r As Long, c As Long
arrT = TargetRange.Value
arrC = CriteriaRange.Value
'probably should add some code here to check both ranges are the same size...
For r = 1 To UBound(arrT, 1)
For c = 1 To UBound(arrT, 2)
If arrC(r, c) > 0 Then result = result + arrT(r, c)
Next c
Next r
TwoArrays = result
End Function
推荐阅读
- javascript - 尝试使用 POST 请求发送字符串列表时获取不受支持的媒体类型
- python - 来自 lpot 的“.prepare_dataset.sh”命令出错
- javascript - 带有通用数据库的 Express/mongoose 应用程序,用于登录以管理对其他数据库的访问
- c - 将副本释放到分配的内存(通过 getline() 函数)
- flutter - For 循环添加数字并在 Flutter 中的 Text Widget 内获取平均值
- java - 过滤第三个字符后的项目列表
- python - QDialog中的中心确定按钮
- vim - 如何在 vim 的终端模拟器中打开文件
- python - 信号处理程序中的 exit(1) 只是被捕获为 SystemExit,因为它没有任何内容
- python - 如何在 tkinter 上使用填充圆角按钮