Всем привет. Прочитал, что функция в VBA может отобразить вычисленной значение только в той ячейке, откуда она была вызвана. Чтобы отобразить какие-то вспомогательные переменные, нужно сделать так, чтобы функция возвращала массив. Если нужно отобразить только основное значение, вызываем как обычно из одной ячейки. Если нужны дополнительные переменные, выделяем, к примеру, 2 ячейки, пишем нужную функцию, нажимаем Ctrl + Shift + Enter. Но вместо основного значения и дополнительного у меня отображается основное + основное, хотя в функции показывается основное + дополнительное
А нужно, чтобы было 14390 и 0,97
Сам код:
Function adequacy(MinPrice As Range, MaxPrice As Range, DeliveryPricesRange As Range)
Dim sglStart As Single, w&, r&, name, ratio As String, final As Object, objRegExp As Object, rg As Range, a
Dim Index As Integer
Dim MinusRub As Long
Dim Price(1 To 2, 1 To 1)
Price(1, 1) = 0
MinusRub = 40
Col = 7
IfMore30 = 3
ratio = MinPrice / MaxPrice
Price(2, 1) = ratio
If ratio < 0.5 Then
For Index = Col To 1 Step -1
Select Case Index
Case Is = 7
Price(1, 1) = CLng(DeliveryPricesRange(Index))
If Price(1, 1) <> 0 Then
Exit For
End If
Case Else
Price(1, 1) = CLng(DeliveryPricesRange(Index)) - MinusRub
If Price(1, 1) + 40 <> 0 Then
Exit For
End If
End Select
Next Index
Else
For Index = 1 To IfMore30
Price(1, 1) = CLng(DeliveryPricesRange(IfMore30 - Index + 1))
If Price(1, 1) <> 0 Then
Exit For
End If
Next Index
End If
adequacy = Price
End Function
P.S. нужно проверять как я создаю массив 2*1, или 1*2, проблема была в этом