Замучился с синтаксисом! Помогите, прошу.
Хочу в VBA написать формулу, которая в excel'е выглядит так:
{=СУММ(P2:P4*(A2:A4=A3)*(B2:B4=B3))}
Сделал так:
Sub test()
Dim ДиапазонСуммирования As Range
Dim ДиапазонУсловий1 As Range
Dim ДиапазонУсловий2 As Range
Dim ПеременнаяРезультат As Double
Set ДиапазонСуммирования = Worksheets("Лист2").Range("P2:P4")
Set ДиапазонУсловий1 = Worksheets("Лист2").Range("A2:A4")
Set ДиапазонУсловий2 = Worksheets("Лист2").Range("B2:B4")
ПеременнаяРезультат = WorksheetFunction.SumProduct((ДиапазонСуммирования) * _
(ДиапазонУсловий1 = Worksheets("Лист2").Range("A3")) * _
(ДиапазонУсловий2 = Worksheets("Лист2").Range("B3")))
MsgBox (ПеременнаяРезультат)
End Sub
выдает ошибку: Run-time error '13': Type mismatch
Задача - получение в нужной ячейке результата, а не формулу.
Хочу в VBA написать формулу, которая в excel'е выглядит так:
{=СУММ(P2:P4*(A2:A4=A3)*(B2:B4=B3))}
Сделал так:
Sub test()
Dim ДиапазонСуммирования As Range
Dim ДиапазонУсловий1 As Range
Dim ДиапазонУсловий2 As Range
Dim ПеременнаяРезультат As Double
Set ДиапазонСуммирования = Worksheets("Лист2").Range("P2:P4")
Set ДиапазонУсловий1 = Worksheets("Лист2").Range("A2:A4")
Set ДиапазонУсловий2 = Worksheets("Лист2").Range("B2:B4")
ПеременнаяРезультат = WorksheetFunction.SumProduct((ДиапазонСуммирования) * _
(ДиапазонУсловий1 = Worksheets("Лист2").Range("A3")) * _
(ДиапазонУсловий2 = Worksheets("Лист2").Range("B3")))
MsgBox (ПеременнаяРезультат)
End Sub
выдает ошибку: Run-time error '13': Type mismatch
Задача - получение в нужной ячейке результата, а не формулу.