Я хотел бы суммировать диапазон строк в столбце для входного значения критерия из InputBox для значений, которые равны или меньше входного значения. в таблицах Excel это тривиально, например, = СУММЕСЛИ (A2: A20; "<= 200"; C2: C20). Я определил что-то подобное в vba, но возвращаемое значение равно 0, я предполагаю, что функция СУММЕСЛИ в vba не распознает значение из InputBox как целое число, а как строку. Я ищу простое решение, если это возможно, ниже синтаксис, который я определяю в vba. </p>
Dim A, B, AB As Variant
Dim criteriaRng As Range
Dim sumRng As Range
A = Application.InputBox("Enter the amount of A per year", "A", "A/year", Type:=1)
Worksheets("Sheet").Range("M12").Value = A
B = Application.InputBox("Enter the amount of years B", "B", "Years", Type:=1)
Worksheets("Sheet").Range("N12").Value = B
AB = Worksheets("Sheet").Cells(12, 13) * Worksheets("Sheet").Cells(12, 14)
Worksheets("Sheet").Range("O12").Value = AB
Set criteriaRng = Worksheets("Sheet2").Range("A2:A20")
Set sumRng = Worksheets("Sheet2").Range("C2:C20")
Worksheets("Sheet").Range("P12").Value = WorksheetFunction.SumIf(criteriaRng, "<= AB", sumRng)
End Sub```