2015-04-22 6 views

ответ

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")

0

Для результата быть помещены в F9, пожалуйста, попробуйте:

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

Внутренние 'MAX' функции являются избыточными, так что эквивалентно будет' "= MAX (Named_Range1, Named_Range2, Named_Range3)" ' – BrakNicku

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 
Смежные вопросы