2016-10-02 5 views
0

셀 범위의 함수 내에 정의 된 배열에서 특정 숫자를 계산하고 싶습니다. 여기 내 코드 :Vba Excel 형식 불일치

Function countNumbers(cell As Range) 

    Dim rCell As Range 
    Dim myArray(25) As Integer 
    myArray(0) = 1 
    myArray(1) = 2 
    myArray(2) = 3 
    myArray(3) = 4 
    myArray(4) = 5 
    myArray(5) = 11 
    myArray(6) = 12 
    myArray(7) = 13 
    myArray(8) = 14 
    myArray(9) = 15 
    myArray(10) = 21 
    myArray(11) = 22 
    myArray(12) = 23 
    myArray(13) = 24 
    myArray(14) = 25 
    myArray(15) = 31 
    myArray(16) = 32 
    myArray(17) = 33 
    myArray(18) = 34 
    myArray(19) = 35 
    myArray(20) = 41 
    myArray(21) = 42 
    myArray(22) = 43 
    myArray(23) = 44 
    myArray(24) = 45 

    For Each rCell In cell.Cells 
     For i = LBound(myArray) To UBound(myArray) 
      If rCell.Value = myArray Then 
       countNumbers = countNumbers + 1 
      End If 
     Next i 
    Next rCell 

End Function 

내가 얻는 오류는 코드의 첫 줄에 "형식 불일치"입니다. 당신이 확인하려고 나는 당신의 루프 내에서 MS- 엑셀 2007 감사

+2

를 사용하고, rCell.Value = myArray의 Then'주는 경우가 rCell.Value = myArray의 (I) Then''로 라인을'수정 배열 안의 각 셀의 기준 –

+1

또한'Dim myArray (25) As Integer'를'Dim myArray (24) As Integer'로 수정하십시오. 그렇지 않으면 마지막 요소는 비어있을 것이고 모든 빈 셀은' If' 기준. –

+0

@ShaiRado 수락에 대한 답변으로 수정 내용을 추가 할 수 있습니까? – KostasC

답변

1
Function countNumbers(cell As Range) 

    Dim rCell As Range 
    Dim myArray(24) As Integer 

    myArray(0) = 1 
    myArray(1) = 2 
    myArray(2) = 3 
    myArray(3) = 4 
    myArray(4) = 5 
    myArray(5) = 11 
    myArray(6) = 12 
    myArray(7) = 13 
    myArray(8) = 14 
    myArray(9) = 15 
    myArray(10) = 21 
    myArray(11) = 22 
    myArray(12) = 23 
    myArray(13) = 24 
    myArray(14) = 25 
    myArray(15) = 31 
    myArray(16) = 32 
    myArray(17) = 33 
    myArray(18) = 34 
    myArray(19) = 35 
    myArray(20) = 41 
    myArray(21) = 42 
    myArray(22) = 43 
    myArray(23) = 44 
    myArray(24) = 45 

    For Each rCell In cell.Cells 
     For i = LBound(myArray) To UBound(myArray) 
      If rCell.Value = myArray(i) Then 
       countNumbers = countNumbers + 1 
      End If 
     Next i 
    Next rCell 

End Function