2015-04-22 60 views
0

我遇到了很多麻煩。我想在VBA中複製這個值:多個命名範圍的最大值

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

我有一個不可能的時間試圖完成這件事。

回答

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) 

如果命名的範圍是另一個工作簿中,有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

更換ThisWorkbook如果三個範圍在SAM Ë片則:

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