Что-то вроде кода ниже. Хотя я упомянул в своем комментарии VLookup, индекс / соответствие работает лучше, потому что vlookup может искать только первый столбец в диапазоне и возвращать значения из диапазона. Использование комбинации Index & Match позволяет возвращать результат из любого места. Приношу свои извинения за путаницу.
Приведенный ниже код работает следующим образом:
- Найти последнюю строку данных
- Найти максимальное требование от диапазона E2 до Elast_row
- Значение максимального спроса - Double, это не было очевидно из вопроса
- Используйте максимальное требование в качестве аргумента для Match, чтобы найти строку диапазона E2-Elast_row, в которой оно находится расположен
- Используйте номер строки в качестве аргумента для индекса, чтобы найти месяц в диапазоне от А2 до Alast_row.
Я добавил «Явный вариант», поскольку это, как правило, хорошая идея и находит необъявленные переменные.
Option Explicit
Sub MonthHighestDemand()
Dim ws As Worksheet
Dim Last_Row As Long
Dim Max_Demand As Double
Dim RowOf_Demand As Long
Dim MonthOf_Demand As Date
Set ws = Sheets("DATA")
Last_Row = ws.Range("A1").CurrentRegion.Rows.Count
' =INDEX(A2:A<last_row>,MATCH(MAX(E2:E<last_row>),E2:E<last_row>, 0))
Max_Demand = Application.WorksheetFunction.Max(ws.Range("E2:E" & Last_Row))
RowOf_Demand = Application.WorksheetFunction.Match(Max_Demand, ws.Range("E2:E" & Last_Row), 0)
MonthOf_Demand = Application.WorksheetFunction.Index(ws.Range("A2:A" & Last_Row), RowOf_Demand)
MsgBox "The maximum demand is " & Max_Demand & " which occurs at " & MonthOf_Demand
End Sub
Я предположил, что данные расположены так, как показано на прилагаемом рисунке.
- Заголовки столбцов
- Месяцы в столбце A
- Требование в столбце E
Использование следующих данных примера
Выполнение подпрограммы дает следующий результат .