多个命名范围的最大值

Maximum of Multiple Named Ranges

我在这方面遇到了很多麻烦。我想在 VBA 中复制这个值:

=MAX(MAX(Named_Range1),MAX(Named_Range2),MAX(Named_Range3)) 

我很难完成这件事。

结果要放在F9,请尝试:

Sub Maximal()
   Range("F9").Formula = "=MAX(MAX(Named_Range1),MAX(Named_Range2),MAX(Named_Range3))"
End Sub 

如果您不想将公式放在其中一个单元格中并在VBA代码中计算结果,您还可以使用以下代码:

Dim rng1 As Range, rng2 As Range, rng3 As Range
Dim y As Double

Set rng1 = ThisWorkbook.Names("Named_Range1").RefersToRange
Set rng2 = ThisWorkbook.Names("Named_Range2").RefersToRange
Set rng3 = ThisWorkbook.Names("Named_Range3").RefersToRange

y = WorksheetFunction.Max(rng1, rng2, rng3) 

如果命名范围在另一个工作簿中,请将 ThisWorkbook 替换为 Workbooks("workbook name")

如果三个范围在同一个sheet则:

Sub MaxMax()
    Dim r As Range
    Set r = Union(Range(Named_Range1), Range(Named_Range2), Range(Named_Range3))
    MsgBox Application.WorksheetFunction.Max(r)
End Sub