Я пытаюсь написать макрос, который возвращает максимальное значение столбца на основе значения в другом столбце. Я думал, что мой код работает, но он просто возвращает значение нуля. Я пытаюсь сделать это для таблицы около 2500 строк. Я создал меньшую таблицу, чтобы попытаться выяснить, в чем проблема, но я получаю тот же результат (он возвращает 0 вместо 10).VBA для max массива возвращает значение 0
Вот мой код:
Sub test()
imax = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
Dim MaxArray(2 To 11) As String
For t = 2 To 11
If (Cells(t, 1) = 1) Then MaxArray(t) = Cells(t, 2).Value
Next t
Cells(2, 3).Value = WorksheetFunction.max(MaxArray)
End Sub
Вот результат я получаю:
Column 1 Column 2 Max of Column 1
1 4 0
1 6
1 3
1 10
1 9
2 5
2 2
2 3
2 8
Может кто-нибудь сказать мне, в чем проблема?
Некоторые примечания: Я знаю, как это сделать, используя сводную таблицу или формулу в excel, но я действительно хочу, чтобы она попала в макрос, который запускает кучу других вещей до и после него. Я просто хочу нажать кнопку один раз вместо остановки и добавить таблицу или формулу, а затем нажать еще одну кнопку, чтобы продолжить.
Вы пытались изменить 'Dim MaxArray (от 2 до 11) как String' до' Dim MaxArray (от 2 до 11) как Integer'. Не уверен, но, возможно, это проблема –
В этом была проблема. Благодаря! –