2017-05-23 7 views
0

으로 행을 요약하므로 현재 신뢰 구간을 계산해야하는 Excel 시트에서 작업하고 있습니다. 짧게 이야기하자면, 자동으로이 작업을 수행 할 수있는 유일한 방법은 vba 코드를 작성하는 것입니다. 첫 번째 단계는 시트의 여러 열에 대한 열의 셀 평균을 계산하는 것입니다. 내가 무슨 짓을 :Excel for 루프 - 유형 불일치 오류

Dim temp As Double 
temp = 0 

Dim it_row As Long 
for it_row = 1 to 100 
    if IsBlank(Sheet.Cells(it_row,it_col)) then 
      temp = temp + 0 
    else 
      temp = temp + Sheet.Cells(it_row,it_col).Value 
    end if 
next it_row 

Dim Average As Double 
Average = temp/100 
'writing average in another cell 

이 코드는 내가 CDouble(Sheet.Cells(it_row,it_col).Value)을하려고 노력

temp = temp + Sheet.Cells(it_row,it_col).Value

라인에서 컴파일러 반환 유형 missmatch, 오류 코드 (13) 으로 작동하지 않습니다하지만하지 않았다 작업.

인터넷 검색이 실제로 도움이되지 않았기 때문에 필자는 필사적으로 도움이됩니다.

나는 더 큰 자동 프로세스의 일부이기 때문에 vba와이 코드를 사용해야한다는 것을 언급해야한다. 관리자는 다음 단계에서 자동화를 위해 vba를 사용해야한다고 말했다.

if isnumeric(Sheet.Cells(it_row,it_col).Value) 

+0

다음'Sheet.Cells (it_row, it_col) .Value' 텍스트 또는 오류가 있습니다. 'temp'에 셀을 추가하기 전에 셀이 숫자인지 테스트해야합니다. –

+0

또한 셀에' ""'을 반환하면 값을 선언하고'it_col'에 값을 할당하지 않습니다. –

+0

, 'ISBLANK'은 거짓을 리턴 할 것입니다. 어쩌면'Sheet.Cells (it_row, it_col) = ""'시도해보십시오. –

답변

-2

확인

Sheet.Cells(it_row,it_col).Value 

... ... 더블 타입의 값을 넣기 전에. 검사가 실패하면 건너 뛰거나 sth로 취급 할 수 있습니다. 그밖에. 주석으로 추가했는데 담당자가 충분하지 않습니다. 의견을 추가하십시오.

+1

이 댓글은 이미 작성되었습니다. 코멘트를 위해 대답 공간을 사용하지 마십시오, 그것은 이미 가지고있는 담당자를 잃는 좋은 방법입니다. –

0

Average 및 합계 엑셀 기능은 텍스트, 부울, 빈 값을 무시 :

Average = Application.Average(Sheet.Cells(1, it_col).Resize(100))