私は、学校のコーススケジュールを検証するExcel VBAプログラムを作成しています。主要なコンポーネントは、コース番号(キー)とそのコースがスケジュールされた回数(アイテム)を追跡するグローバルディクショナリオブジェクトです。私は正常に作成し、辞書をロードしました。私はコースキーに関連付けられた値を検索しようとしていますが、私はこのサイトで見つかった1行の例を使用してこれを行うことができませんでした。辞書検索が失敗します
intCourseCnt = gdicCourses( "BAAC 100")
または
intCourseCnt = gdicCourses.Item( "BAAC 100")
どちらも:私はこのコード行を使用したいです実際には「BAAC 100」の部分は文字列変数ですが、コースをハードコードするとうまくいかないでしょう。代わりに、以下のkludgyループコードを使用してコース数を調べる必要があります:
Private Function Check_Course_Dup_Helper(strCourse As String) As Boolean
Dim k As Variant
Check_Course_Dup_Helper = False
' Read thru dictionary. Look to see if only 1 occurrence then jump out.
For Each k In gdicCourses.Keys
If k = strCourse Then
If gdicCourses.Item(k) = 1 Then
Check_Course_Dup_Helper = True
Exit Function
End If
Exit Function
End If
Next
End Function
これを書き換えてループなしでアイテムの値を検索できる方法はありますか?
ありがとうございます。
あなたは「どちらの仕事も」とは言っていますが、これはどういう意味ですか? 'gdicCourses(strCourse)'を実行するとどうなりますか? –
また、この辞書に入力するコードを表示することも考えられます。 (おそらく先頭/末尾の空白や非印字文字など) –
チェックする(1)辞書が存在し、それを含んでいるかどうか確認してください正確なキーと正確なキーが何であるかを再確認する - 空白が含まれているか(2)辞書をアルファベット順に入力してから検索する –