Hashtable(mscorlib.dll参照)を使用しています。私はデータでそれを塗りつぶし、アイテムを取得することができます(要求タイプをハッシュテーブルに格納されているタイプとまったく同じタイプに変換する限り).ContainsValue/Key - すべて動作します。しかし、私はFor Eachループでそれを繰り返すことはできません。 私はインターネット上で見つけることができたすべてのメソッドを試しました(要素ごとに、GetEnumeratorを使用して要素がDictionaryEntryである)が、動作しません - 列挙子を介してテーブルをロールオーバーできますが、 iteratorがどこに置かれているかの値もキーも値でもありません。私は間違って何をしていますか? 私は一時的に数値にキーを設定し、その数値を反復して解決しましたが、最終的に同じ数が2回繰り返されるため、機能しません。VBA(Excel)でHashtableを反復できません
PS: ContainsKeyとContainsValueの両方が必要で、キーまたは値で項目を取得できるため、Hashtableの一部です。
EDIT:私の現在のコード(私が探しています何がループ「私は、」交換することですので、私は、私はすでに知っている数字であることを、キーを必要としない)
For i = 1 To UBound(rands)
chopped_yes = Split(ThisWorkbook.Worksheets(1).Range("Z" & rands(i)))
chopped_no = Split(ThisWorkbook.Worksheets(1).Range("AA" & rands(i)))
chopped_any = Split(ThisWorkbook.Worksheets(1).Range("AB" & rands(i)))
For Each part In chopped_yes
If rules_yes.ContainsValue(cscs.item(CLng(rands(i)))) Then
validcsc = 0
GoTo WriteIt
End If
Next part
For Each part In chopped_no
If rules_no.ContainsValue(cscs.item(CLng(rands(i)))) Then
validcsc = 0
GoTo WriteIt
End If
Next part
For Each part In chopped_any
pepa = cscs.item(CLng(rands(i)))
chopped_pepa = Split(pepa, "=")
If rules_any.ContainsValue(CStr(chopped_pepa(0))) Then
validcsc = 0
GoTo WriteIt
End If
Next part
Next i
コードは何:
のCSCのハッシュテーブルは、キーワード/ option_valueペア、他の人といくつかのキーワードの競合が含まれている、(rules_any /はい/いいえ0にキーワード紛争、確認1がキーワードである場合= YES/NO/SOMETHINGと設定validcscが含まれているハッシュテーブルません一種の無効なキーワードの組み合わせ)。
ランズユニークな数字の配列である - のトラブルは、複数の競合のキーワードがある場合は、その後、私は後で知っていると
現在のコードを掲載することはできますか? – brettdj
OPを自分のコードで更新しました – Destabilizator
VBAはDictionaryEntry型(eletmanのハッシュテーブル)もICollection型(これは.Keysメソッドが返すものです)を処理できないため、自分のライブラリを作成しました。 – Destabilizator