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

我有一个有多个dynamic命名范围的电子表格,如HR_B1,HR_B10等

我试图创build一个函数,可以从函数中插入任何一个范围中find最小值,也就是说,用户函数将input两个值到函数say 3和6中,它将在范围HR_B3到HR_B6上find最小值。

我已经创build了一个数组和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 

试试看,

 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


在你的情况下,你并没有在括号或[ 任何这两个选项应该工作。