2012-02-03 2 views
1

저는 이것을 Fortran에서 할 수 있지만, 이후 Excel에서도 갖는 것이 매우 유용하다는 것을 발견했습니다.명명 된 범위에서 범위 변수의 셀 주소를 찾는 방법

명명 된 범위의 세 연속 셀을 비교합니다. 셀의 값이 설정 기준에 해당하면 세 개의 셀의 평균을 구합니다. 그런 다음 중앙 값 (셀)의 셀 주소를 결정해야합니다. 따라서 오프셋이이 중앙 값 셀의 셀 주소에 의해 지정된 셀을 참조 할 수 있습니다.

나는 모듈에서 선언 한 변수 "유형"과 관련이 있다고 생각합니다. test의 명명 된 범위 당신이 "중앙"셀을 찾으려면이 코드를 사용할 수 있습니다 들어

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 

답변

2

은 - 만약 "CENTRA"무슨 뜻 중간 값

코드

  • 하여 평균을 찾습니다 명명 된 범위의
  • MATCHINDEX

    을 사용하여이 셀의 주소를 반환합니다.
    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 
    
+0

안녕 brettdj : 중앙 셀이 최대 또는 행 2048 열을 진행 세 비교 셀의 최소 하나는 세포이다. 안부 벤 – user1186621

+0

@user1186621 최소값은'Application.Median (rng1)'을'Application.Min (rng1)'으로, 최대 값은'Application.Mzx (rng1)'을 대체합니다. – brettdj