2016-12-16 8 views
0

vba辞書を使用してデータを消去するためのマッピングを作成しようとしています。私はフランス、ベルギー、オランダなどのアイテムとして、FR、BE、NLのような国コードの値の範囲とそれらのオフセット値をアイテムとして保存します...テストを実行して文字列をキーとして検索すると、実行時エラー451をスローする 'オブジェクトが返されなかった'誰でも問題の原因を教えてもらえますか?VBA辞書項目を文字列キーで呼び出せません

Sub getthisdone() 

'Dim dict As scripting.dictionary 
Dim ws As Worksheet 
Dim lastRow As Long 
Dim key As String, dictItem As String 
Dim i As Long 

Set ws = ThisWorkbook.Worksheets("Country mapping") 
Set dict = CreateObject("Scripting.Dictionary") 

lastRow = ws.Range("A1").SpecialCells(xlCellTypeLastCell).Row 

For i = 2 To 8 'lastRow 

key = ws.Cells(i, 1).Text 
dictItem = ws.Cells(i, 2).Text 

    With dict 

     .Add key, dictItem 

    End With 

Next i 

MsgBox dict.items("FR") '<---- Error happens here, why? 



End Sub 

答えて

2

.Itemない.Items

MsgBox dict.Item("FR") 

あなたはプロジェクト参照をクリックすると、 "Microsoftスクリプトの実行時に" ダニとにCreateObject行を変更:あなたは意志

Dim dict As Scripting.Dictionary: Set dict = New Scripting.Dictionary 

早期バインディング自動補完を取得するこのようなタイプミスを避けてください。

関連する問題