Я очень новичок в использовании Excel VBA и полностью самоучка, так что, надеюсь, это будет простой вещью, которую мне не хватает. Я создал пользовательскую функцию, которая работает, когда два требуемых входа являются одиночными ячейками, но перестает работать, когда эти входы являются массивом.
Функция должна перебирать массив (Lookup_Array) и если значение вячейка больше 0, она должна суммировать значения из второго массива (Count_Array) в Total. Ниже приведено то, что у меня есть:
Public Function Reconcile_Total(Lookup_Array As Range, Count_Array As Range) As Long
Dim Total As Long
Dim i As Integer
Total = 0
i = 1
For Each element In Lookup_Array
If Lookup_Array > 0 Then
Total = Total + Count_Array(i)
Else
End If
i = i + 1
Next element
Reconcile_Total = Total
End Function
Так что если в столбце A Excel я выделю A1: A3 как Lookup_Array, и он содержит 1, 0, 2, а затем выделю в столбце B,B1: B3 как Count_Array, и это содержит 100, 200, 300, тогда формула должна возвращать 400. Код работает, если я выделяю A3 и B3, он возвращает 300 - или, если я выделяю A2 и B2, он возвращает 0 - как только явыделите массив, такой как A1: A3 и B1: B3, он перестает работать.
Может ли кто-нибудь любезно рассказать этому нубу, пожалуйста, почему он перестает работать?