在excel中使用vba来确定命名范围数组的最小值

时间:2017-08-02 12:56:24

标签: excel vba min named-ranges

我有一个包含多个动态命名范围的电子表格,例如HR_B1到HR_B10等。

我正在尝试创建一个函数,该函数将从函数中插入的任何范围中找到最小值,即用户函数将在函数中输入两个值,例如3和6,它将在HR_B3范围内找到最小值到HR_B6。

我创建了一个数组和for循环,用于存储数组中命名范围的名称。

但是我无法获取WorksheetFunction.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 个答案:

答案 0 :(得分:1)

试一试,

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

答案 1 :(得分:0)

正确的语法是这样的:

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])

随意选择任何东西:)如果WorkSheet带有标题和代码名称Tabelle1,并且命名范围被命名为named

在您的情况下,您没有将fullrange放在括号中或[中。这两个选项中的任何一个都应该有效。