2015-04-22 100 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