我遇到这个问题很麻烦。我想在VBA中复制这个值:
=MAX(MAX(Named_Range1),MAX(Named_Range2),MAX(Named_Range3))
我有一个不可能的时间试图完成这件事。
答案 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")