我想寫一個宏,它返回基於另一列中的值的列的最大值。我認爲我的代碼正在工作,但它只返回一個零值。我試圖做一個大約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'。不知道,但也許這是問題 –
這是問題所在。謝謝! –