簡體   English   中英

VBA UDF 多陣列 arguments

[英]VBA UDF multiple array arguments

我正在嘗試在 VBA 中創建一個 UDF,它將多個大小相等的 arrays 作為參數,然后循環遍歷它們,使每個數組保持相同的索引。

我已將代碼設置如下。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM