特定の列に配列とカウント値を取得するには、public関数が必要です。 私は以下を書いて、サブスクリプション・アウト・オブ・レンジ・メッセージを受け取りました。あなたは、配列の指定された列内の個別値のカウントをしたいと仮定すると、VBA EXCEL特定の列の配列メンバーをコレクションに追加して一意の値をカウントする
Public Function CountUarrcol(inarr() As Variant, colidx As Integer) As Long
Dim col As New Collection
Dim i As Integer
Dim element As Variant
For i = 0 To UBound(inarr, colidx)
For Each element In inarr(i + 1, colidx)
col.Add Item:=CStr(element.value), Key:=CStr(element.value)
Next
Next i
CountUarrcol = col.Count End Function
はI + 1は、UBound関数を超えてあなたを入れていますループ中のinarrの? – QHarr
なぜ2つのループがありますか?どのようにあなたの関数に 'inarr'を渡していますか?エラーが発生したときにコードが停止している行は何ですか? –
私はこの部分を次のように改訂しました:
'Public Function CountUarrcol(inarr As Variant, colidx As Integer) As Long Dim col As New Collection Dim i As Integer Dim element As Variant For Each element In inarr col.Add Item:=element, Key:=element Next CountUarrcol = col.Count End Function'
– hussein5