多个命名范围的最大值
我遇到了很多麻烦。 我想在VBA中复制这个值:
=MAX(MAX(Named_Range1),MAX(Named_Range2),MAX(Named_Range3))
我有一个不可能的时间试图做到这一点。
如果您不想将公式放在其中一个单元格中并以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")
replace为Workbooks("workbook name")
如果三个范围在同一张纸上,则:
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
要将结果放置在F9中,请尝试:
Sub Maximal() Range("F9").Formula = "=MAX(MAX(Named_Range1),MAX(Named_Range2),MAX(Named_Range3))" End Sub