我有一个包含多个动态命名范围的电子表格,例如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
答案 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
放在括号中或[
中。这两个选项中的任何一个都应该有效。