我想计算包含某个字符串的 Excel 列中的所有唯一值。例如,假设我的专栏中有这个:
斯特拉
字符串
斯特拉
字符串
差异
差异B
字符串
如果我给这个理论函数写一个值“str”,它将计算包含“str”的唯一值,并返回数字 3。
有什么建议么?网络上充斥着这个问题的一半答案,但我花了一个小时试图找到一个明确的解决方案,所以我认为 StackOverflow 可能会从这个问题中受益。
最佳答案
Option Explicit
Sub Test()
GetCount 1, "str"
End Sub
Sub GetCount(colNum As Integer, str As String)
Dim row As Integer
Dim dict
Set dict = CreateObject("Scripting.Dictionary")
row = 1
Dim key As String
While Cells(row, colNum) <> ""
key = Cells(row, colNum)
If InStr(key, str) And Not dict.Exists(key) Then
dict.Add key, key
End If
row = row + 1
Wend
MsgBox ("the count is " & dict.Count)
End Sub
使用输入样本运行时,结果为 3。循环的终止条件是在列中找到的第一个空单元格。如果逻辑不是你想要的,你可以调整它。
您需要在 VBA 部分中添加对 Microsoft Scripting Runtime 的引用,才能编译和运行此宏。
关于excel - 计算满足特定条件的 Excel 电子表格中的唯一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3669909/