我想写一个宏,它返回基于另一列中的值的列的最大值。我认为我的代码正在工作,但它只返回一个零值。我试图做一个大约2500行的表格。我创建了一个较小的表来试图找出问题所在,但我得到了相同的结果(它返回0而不是10)。VBA的最大数组返回值为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)As String'更改为'Dim MaxArray(2至11)As Integer'。不知道,但也许这是问题 –
这是问题所在。谢谢! –