2017-10-30 7 views
0

열 A에 입력 한 값에서 vlookup 문의 결과를 사용하여 한 시트에 스프레드 시트를 생성하고 C 열의 값을 생성했습니다.vlookup 문의 결과 인 Excel VBA를 사용하여 셀 수를 계산합니다.

모든 값을 입력 한 후에 오류가 아닌 값이있는 최대 51 행 (행 1에서 행 51까지)의 C 셀 수를 계산할 수 있어야합니다.

아 - 그런데 내가 계산할 때마다 다른 수의 행이 사용됩니다.

ccc = Range("C:C").Cells.SpecialCells(xlCellTypeConstants).Count 

그러나 이것은 단지 내 헤더 행 첫 번째 라인을 계산 :

내가 사용하려고했습니다.

죄송합니다. 이미 답변이 있지만 죄송합니다. 잠시 기다려 봤지만 아무 것도 찾을 수 없습니다.

감사합니다.

답변

1

쉽게 VBA없이이 작업을 수행 할 수 있지만, 당신이 시도 할 수 : xlCellTypeConstants 특별히 공식 계산 된 값을 무시하고, 단지 상수 값을 계산을 말하고 있기 때문에

sub testy() 
dim myRange as range 
dim numRows as long 

Set myRange = Range("C:C") 
numRows = Application.WorksheetFunction.CountA(myRange) - _ 
myRange.SpecialCells(xlCellTypeFormulas, xlErrors).Count 

end sub 

귀하의 코드가 작동하지 않습니다.

+0

네 말이 맞아 들어이 coulmn

에서의, 내가 편집을 만들었습니다. 이제는이 PC에 능숙하지 않아서 SpecialCells (xlCellTypeFormulas-xlErrors)로 셀 수있었습니다. 나는 거기에 빼기 연산자를 시도한 적이 없으며, 추가 만해도 작동 할 수 있습니다. –

+1

그게 내가 엑셀이 설치되어 있지 않은 컴퓨터에서 질문에 대답하기위한거야, 하하. –

+0

그러나 CountA에는 포함되지만 SpecialCells에는 포함되지 않으므로 헤더에 1을 빼야합니다 (지금 +1을 추가합니다 - OP는 돈을 내지도 OP를 추출 할 수 있습니다) 대답 – YowE3K

1

워크 시트 기능 CountA 카운트 값 만 세포 :

dim c as integer 
c = WorksheetFunction.CountA([C1:C51]) 

CountIf은 생략 할 수 있습니다 : 우리는 WorksheetFunction 기능 VBA에서 워크 시트 함수를 호출 할 수 있습니다

=CountA(C1:C51) 

오류 :

Skip errors with: `=COUNTIF(D5:D9,">0")` 
+0

'COUNTA'에는 오류 값 – YowE3K

+0

이 (가) 포함되어 있습니다. 감사합니다. – ashleedawg

1

오류가없는 셀 수를 계산하려고합니다. 아래의 수식으로 vlookup을 바꾸십시오.

A - : 그래서 모든 오류는 "찾을 수 없음"텍스트로 대체됩니다

=IFERROR(VLOOKUP(C1,A1:B3,2,FALSE), "NOT FOUND") 

그런 다음 비 비어 비 잘못된

=COUNTA(D:D) - COUNTIF(D:D,"NOT FOUND") 

가정있는 세포의 수를 찾으려면이 추가 : B 소스 범위

C 조회 열

D vlookup 함수 i VBA

cnt = Application.WorksheetFunction.CountA(D:D) - Application.WorksheetFunction.Countif(D:D, "NOT FOUND")