在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
。
在你的情况下,你并没有在括号或[
任何这两个选项应该工作。