VBA计数包含指定值的列中的单元格

时间:2011-12-21 16:16:10

标签: vba excel-vba excel

我需要编写一个宏来搜索指定的列并计算包含指定字符串的所有单元格,例如 "19/12/11" or "Green" 然后将此数字与变量相关联,

有没有人有任何想法?

5 个答案:

答案 0 :(得分:55)

你的意思是你想在VBA中使用公式吗?类似的东西:

Dim iVal As Integer
iVal = Application.WorksheetFunction.COUNTIF(Range("A1:A10"),"Green")

应该有用。

答案 1 :(得分:13)

这不是完全您正在寻找的内容,但以下是我过去如何解决此问题;

您可以输入类似的公式

=COUNTIF(A1:A10,"Green")

......进入一个牢房。这将计算包含文本“绿色”的A1和A10之间的单元格数。然后,您可以在VBA宏中选择此单元格值,并将其正常分配给变量。

答案 2 :(得分:2)

单向;

var = count("find me", Range("A1:A100"))

function count(find as string, lookin as range) As Long
   dim cell As Range
   for each cell in lookin
       if (cell.Value = find) then count = count + 1 '//case sens
   next
end function

答案 3 :(得分:0)

不是你问过的,但可能有用。

当然你可以用矩阵公式做同样的事情。 只需阅读包含以下内容的单元格的结果:

Cell A1="Text to search"
Cells A2:C20=Range to search for

=COUNT(SEARCH(A1;A2:C20;1))

请记住,输入矩阵公式需要CTRL + SHIFT + ENTER,而不仅仅是ENTER。 之后,它应该看起来像:

{=COUNT(SEARCH(A1;A2:C20;1))}

答案 4 :(得分:0)

如果您要匹配非空白值或空单元格,并且对通配符有困难,我可以从here找到以下解决方案。

Dim n as Integer
n = Worksheets("Sheet1").Range("A:A").Cells.SpecialCells(xlCellTypeConstants).Count