Использование VBA в Excel для определения минимального значения из массива именованных диапазонов

У меня есть электронная таблица с несколькими динамическими именованными диапазонами, такими как HR_B1, HR_B10 и т. Д.

Я пытаюсь создать функцию, которая будет находить минимальное значение из того диапазона, который вставлен в функцию, то есть пользовательская функция введет два значения в функцию, скажем, 3 и 6, и найдет минимальное значение в диапазонах от HR_B3 до HR_B6.

Я создал массив и цикл, который хранит имена именованных диапазонов в массиве.

Однако я не могу получить код WorksheetFunction.Min для чтения содержимого массива в виде именованных диапазонов и вывода значения min.

Мой код:

Public Function HR_Min_Range(minval As Integer, maxval As Integer) As Variant

Dim fullrange() As Variant
Dim total_birds As Integer
Dim i As Long

total_birds = (maxval - minval)

ReDim fullrange(total_birds)

For i = 0 To total_birds

fullrange(i) = "HR_B" & (i + minval)
Next i

HR_Min_Range = WorksheetFunction.Min(Sheets("HR_Depths").Range(fullrange))

End Function

2 ответа

Попробуй как,

Option Explicit

Public Function HR_Min_Range(minval As Integer, maxval As Integer) As Variant

   Dim i As Long


    HR_Min_Range = Worksheets("HR_Depths").Range("HR_B" & minval).Cells(1)

    For i = minval To maxval
        HR_Min_Range = Application.Min(HR_Min_Range, Worksheets("HR_Depths").Range("HR_B" & i))
    Next i

End Function

Правильный синтаксис выглядит так:

Worksheetfunction.min([named])

или же

WorksheetFunction.min(activesheet.range("named"))

или же

WorksheetFunction.min(tabelle1.Range("named"))

или же

Worksheetfunction.Min(worksheets("Tabelle1").range("named"))

или же

Worksheetfunction.Min(tabelle1.[named])

или же

Worksheetfunction.Min(worksheets("Tabelle1").[named])

Не стесняйтесь выбирать что-нибудь:) Это в случае, если рабочий лист с подписью и кодовым именем Tabelle1 и названный диапазон назван named,


В вашем случае вы не ставите fullrange в скобках или в [, Любой из этих двух вариантов должен работать.

Другие вопросы по тегам