2017-10-30 1 views
0
For Each cell In rnData.Columns(13).SpecialCells(xlCellTypeVisible) 
    If cell > 0.25 And cell < 0.3 And cell.Offset(0, 3) >= valueMin And cell.Offset(0, 3) < valueMax And Year(cell.Offset(0, -2)) = Year(Sheet3.Cells(4, 3)) And Month(cell.Offset(0, -2)) = Month(Sheet3.Cells(4, 3)) Then 
     sum1 = sum1 + cell.Offset(0, 7) 
    End If 
Next 

이 코드는 런타임 오류 13을 반환하며, 문제가 될 수 있습니다.필터링 후 보이는 셀을 통해 루프

+1

셀의 오류 값 또는 시도중인 작업에 필요한 데이터 형식 (날짜/숫자)이 포함되지 않은 셀 수입니다. – Rory

답변

0

숫자에 문자열을 추가하려고하면 오류 번호 13을 얻을 수 있습니다. 따라서 sum1 = sum1 + cell.Offset(0, 7)cell.Offset(0,7)은 아마도 문자열입니다. 런타임 오류가 표시되면 키를 누릅니다 Ctrl 키 + G,

For Each cell In rnData.Columns(13).SpecialCells(xlCellTypeVisible) 
    If cell > 0.25 And cell < 0.3 And cell.Offset(0, 3) >= valueMin And cell.Offset(0, 3) < valueMax And Year(cell.Offset(0, -2)) = Year(Sheet3.Cells(4, 3)) And Month(cell.Offset(0, -2)) = Month(Sheet3.Cells(4, 3)) Then 
     debug.print cell.Offset(0,7);sum 
     sum1 = sum1 + cell.Offset(0, 7) 
    End If 
Next 

하고 직접 실행 창에서 값을 살펴 :

은 다음과 같이 코드를 다시 작성

. 그 중 하나는 숫자가 아닌 문자열이어야합니다.

+0

숫자가 아닌 문자열 인 머리글 행을 계산한다고 생각합니다. 어떻게 해결할 수 있습니까? – Chadi

+0

좋아, 필터 범위를 .Range (.Range ("A1"), .Range ("T2"). End (xlDown))에서 .Range (.Range ("A2"), .Range ("T2") End (xlDown)) – Chadi

관련 문제