VBA在一个维字符串数组敛最小重复memeber(S)

我用下面的函数来收集最频繁的构件在阵列列:VBA在一个维字符串数组" title="字符串数组">字符串数组敛最小重复memeber(S)

Function MosFreqinsimplearr(ByRef arrin As Variant, colindx As Integer) As Variant 

Dim i As Integer

Set dic = CreateObject("scripting.dictionary")

On Error Resume Next

xMax = 0

xOutValue = ""

For i = 1 To UBound(arrin)

xValue = arrin(i, colindx)

If xValue <> "" Then

dic(xValue) = dic(xValue) + 1

xCount = dic(xValue)

If xCount > xMax Then

xMax = xCount

xOutValue = xValue

End If

End If

Next i

MosFreqinsimplearr = xOutValue

Set dic = Nothing

End Function

1-我需要程序返回最小重复或较不频繁的构件(S)。似乎同样的程序不能被用于获取这样的结果,如我尝试:

Dim dic As Object 

Dim j As Integer

Dim xMin As Integer

Dim xOutValue As String

Dim xValue As String

Dim xCount As Integer

Dim ar(1 To 11) As Variant

ar(1) = "banana"

ar(2) = "banana"

ar(3) = "banana"

ar(4) = "apple"

ar(5) = "apple"

ar(6) = "banana"

ar(7) = "cucumber"

ar(8) = "cucumber"

ar(9) = "cucumber"

ar(10) = "apple"

ar(11) = "cucumber"

Set dic = CreateObject("scripting.dictionary")

'On Error Resume Next

xMin = 0

xOutValue = ""

For j = 1 To UBound(ar)

xValue = ar(j)

If xValue <> "" Then

dic(xValue) = dic(xValue) + 1

xCount = dic(xValue)

If xCount <= xMin Then

xMin = xCount

xOutValue = xValue

Else: xOutValue = xValue

End If

End If

Next j

MsgBox "less repeated value is:" & vbTab & xOutValue

Set dic = Nothing

2-什么是每个唯一值的计数数的代码:

banana=4 

cucumber=4

apple=3

问候;

回答:

您需要遍历字典的键并比较值。

Dim key As Variant, minKey As Variant 

For Each key In dic

If IsEmpty(minKey) Then

minKey = key

Else

If dic(key) < dic(minKey) Then minKey = key

End If

Next

以上是 VBA在一个维字符串数组敛最小重复memeber(S) 的全部内容, 来源链接: utcz.com/qa/265826.html

回到顶部