在Excel VBA中无重复计数

时间:2017-05-30 11:52:01

标签: excel-vba vba excel

按以下方式提供的数据

Categories
T1  - cells(2,1)
T2  - cells(3,1)
T1  - cells(4,1)
T3  - cells(5,1)
T1  - cells(6,1)

结果我期待

类别数量= 3

如何在excel中编写vba来计算类别数?

我的源代码

Sub count ()
Size = worksheetfunction.counta(worksheets("categories").columns(1))
Size2 = worksheetfunction.counta(worksheets("categories").columns(1))


For i = 2 to size
Nxtr = i + 1
If cells( i , 1).value = cells ( nxtr, 1) then

Size2 = size2 - 1
End if 

Next i

Msgbox size2 

End sub 

2 个答案:

答案 0 :(得分:0)

我的建议是使用公式而不是VBA编程。但是,你需要结合一些功能,乍一看它并不是很有用。但它运作正常。

请查看以下页面以获取详细的演练:

https://exceljet.net/formula/count-unique-text-values-in-a-range

答案 1 :(得分:0)

如果您的类别如下图所示,

enter image description here

试试以下代码,

Sub countUniques()
Dim i As Long
Columns(1).Copy Cells(1, 2)
Columns("B").RemoveDuplicates Columns:=Array(1), Header:=xlYes
i = WorksheetFunction.CountA(Columns(2)) - 1
Columns(2).Delete
MsgBox i
End Sub