多个命名范围的最大值

时间:2015-04-22 17:46:44

标签: excel vba range max named

我遇到这个问题很麻烦。我想在VBA中复制这个值:

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

我有一个不可能的时间试图完成这件事。

3 个答案:

答案 0 :(得分:1)

如果三个范围在同一张纸上,那么:

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

答案 1 :(得分:0)

要将结果放入F9,请尝试:

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

答案 2 :(得分:0)

如果您不想将公式放在其中一个单元格中并在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")