2013-06-07 2 views
0

Excel 기능이 하나의 셀이 아닌 범위에서 작동하도록 사용자 정의 함수를 조합하려고합니다. 예를 들어 =isnumber(value)이 함수가 셀 범위에서 작동하지 않을 것이므로 범위를 확인하는 데 사용하여 범위의 각 셀에 대해 반복해야합니다.범위를 통해 기존 함수를 반복하는 Excel UDF

누구나 =RangeFunct(range, function,[boolean])의 행을 따라 무엇인가를 조합 해 보았습니까? 이렇게하면 기존 함수로 범위의 각 셀을 통해 루프의 선을 따라 무언가를 수행하고 선택한 것과 일치하지 않는 부울에서 중단합니다. 이 코드를 설정하는 데 도움을 주시면 감사하겠습니다.

답변

2

예 : =RangeFunc(A1:A10,"ISNUMBER")

Function RangeFunc(rng As Range, funct As String) As Boolean 
    Dim c As Range 
    Dim rv As Boolean 
    rv = True 
    For Each c In rng.Cells 
     If rng.Parent.Evaluate(funct & "(" & c.Address() & ")") = False Then 
      rv = False 
      Exit For 
     End If 
    Next c 
    RangeFunc = rv 
End Function 

당신은 언제나 배열 수식 대신하지만 사용할 수 있습니다

=AND(ISNUMBER(A1:A10)) 

은 ...

를 입력 Ctrl 키 + Shift를 사용하여 + 입력
0

이와 같이 간단하게 범위를 문자열 (예 : "A1 : B10")로 정의한 다음 해당 범위의 각 셀을 반복 할 수 있습니다.

Public Function RangeFunct(ByVal myRange As String) As Boolean 
    Dim cell As Range 
    Dim checkRange As Range 
    Set checkRange = Range(myRange) 

    Dim bTemp As Boolean 
    bTemp = True 

    For Each cell In checkRange 
     If cell.Value = 1 Then 
      bTemp = False 
      Exit For 
     End If 

    Next cell 

    RangeFunct = bTemp 
End Function 

당신이 테스트하려는 것과 같은보다 구체적으로 할 수있는 경우 : 당신이 조건을 테스트 할 수 있습니다 각 셀은 해당 셀을 (를 강조하거나주의 깊게 살펴) 등이 여기에 아주 간단한 예제 수정 당신이 그것을 어떻게 사용하고 싶은지에 대한 필요성에 따라 코드를 수정할 수 있습니다.

관련 문제