Excel 如何在命名范围中查找范围变量的单元格地址

Excel 如何在命名范围中查找范围变量的单元格地址,excel,vba,Excel,Vba,我可以用Fortran来做这件事,但我后来发现用Excel也会很有帮助 我比较命名范围内的三个连续单元格。当单元格中的值与设置的标准相对应时,我将三个单元格取平均值。然后我需要确定中心值(cell)的单元地址,从而允许我引用一个单元,其偏移量由该中心值单元的单元地址决定 我认为这与我在模块中声明的变量“type”有关 Dim CellAddressMin As Range Dim CellAddressMax As Range Dim i As Integer Dim MaxVal As D

我可以用Fortran来做这件事,但我后来发现用Excel也会很有帮助

我比较命名范围内的三个连续单元格。当单元格中的值与设置的标准相对应时,我将三个单元格取平均值。然后我需要确定中心值(cell)的单元地址,从而允许我引用一个单元,其偏移量由该中心值单元的单元地址决定

我认为这与我在模块中声明的变量“type”有关

Dim CellAddressMin As Range
Dim CellAddressMax As Range

Dim i As Integer

Dim MaxVal As Double
Dim MinVal As Double
Dim Y1Value As Variant, YValue As Variant, Y2Value As Variant

 SOME OTHER CODE

ElseIf (Y1Value >= YValue And Y2Value >= YValue) Then

    ' Y Value is a minimum and need to determine the corresponding time interval
    'The minimum value will be taken as the average of the prior, the minimum and the proceeding values

    MinVal = WorksheetFunction.Average(Y1Value, YValue, Y2Value)

    CellAddressMin = YValue.address

对于
test
的命名范围,您可以使用此代码查找“central”单元格-如果“centra”是指中间值

代码

  • 查找指定范围的中间值
  • 使用
    MATCH
    INDEX
    从指定范围返回此单元格的地址

    Sub GetMedian()
    Dim rng1 As Range
    Dim rng2 As Range
    Set rng1 = Range("test")
    Set rng2 = Application.Index(rng1, Application.Match(Application.Median(rng1), rng1, 0))
    MsgBox rng2.Address(0, 0)
    End Sub
    

Hi-brettdj:中心单元格是沿2048行列前进的三个比较单元格中的最大或最小单元格。当做ben@user1186621对于最小值,用
Application.Min(rng1)
替换
Application.Min(rng1)
,对于最大值,用
Application.Mzx(rng1)