[英]Count unique values in Excel worksheet column
這對我來說是新的。 我試圖計算ws列中有多少個不同的值,問題是相同的值重復多次,而我只想計算一次。 一些朋友試圖幫助我編寫代碼,但是現在我有點迷失,例如,我不知道為什么要使用函數,或者為什么必須將“ Option Explicit”放在其頂部,歡迎提出想法。
Option Explicit
Function CountUnique(datarange As Range)
Dim datarange
Dim CheckCell
Dim Counter As Double
Counter = 0
For Each CheckCell In datarange.Cells
Counter = Counter + (1 / (WorksheetFunction.CountIf(datarange, CheckCell.Value)))
Next
CountUnique = Counter
End Function
選項明確說明時,必須顯式聲明使用的所有變量。 通過使用Dim和Redim,可以更輕松地調試imo代碼。
至於為什么它是一個功能,則取決於編碼器。 您嘗試做的事情也可以在子宏中完成。 通過給函數賦變量來調用該函數。 在較大的程序中,這可以徹底組織事情。
這是調用該函數的子示例。
Option Explicit
Function CountUnique(datarange As Range)
Dim CheckCell
Dim Counter As Double
Counter = 0
For Each CheckCell In datarange.Cells
Counter = Counter + (1 / (WorksheetFunction.CountIf(datarange, CheckCell.Value)))
Next
CountUnique = Counter
Msgbox Counter
End Function
通過運行test(),它將調用該函數
Sub test()
Dim rag As Range
Set rag = Range("A1:A23")
Call CountUnique(rag)
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.