簡體   English   中英

使用Excel VBA計數單元格是vlookup語句的結果

[英]Counting cells using Excel VBA which are a result of a vlookup statement

我在一張紙上有一個電子表格,其中C列中的值是使用vlookup語句的結果從我在A列中輸入的值生成的。

在A列中輸入所有值后,我需要能夠計算出C列中最多51行(從第1行到第51行)中具有值(不包括錯誤)的單元格的數量。

哦-順便說一句,每次執行計數時,都會使用不同數量的行。

我試過使用:

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

但這僅計算第一行,即我的標題行。

抱歉,如果已經有了答案,但是我已經找了很長時間,找不到任何東西。

謝謝。

您可以在沒有VBA的情況下輕松地做到這一點,但是您可以嘗試:

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

您的代碼無法正常工作,因為xlCellTypeConstants專門告訴它僅計算常量值,而忽略公式的計算值。

工作表函數CountA僅計算具有以下值的單元格:

=CountA(C1:C51)

我們可以使用WorksheetFunction函數從VBA調用任何工作表函數:

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

CountIf可用於跳過錯誤:

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

您正在尋找沒有錯誤的單元格。 用以下公式替換您的vlookup。 因此,所有錯誤都將替換為“找不到”文字

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

然后將其相加,以找到非空白且非錯誤的單元格數量

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

假設: -

A:B信號源范圍

C查找列

D vlookup函數在這個庫中

對於VBA

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM