我有問題,調用Scripting.Dictionary對象上的Remove方法將無法工作。Excel VBA詞典刪除項目
Dim temp As String
Set dict = CreateObject("Scripting.Dictionary")
dict .Add(2,"asd")
dict .Add(3,"asd")
dict .Add(4,"asd")
dict .Add(5,"asd")
dict .Add(6,"asd")
For Each Key in dict.Keys
temp = Key
If(Key > 3) Then
dict.Remove(temp)
End If
Next
運行此代碼會爲字典生成相同數量的字典中的項目。
編輯:我只是修改了代碼,以更好地反映實際使用情況。事實證明,字符串轉換在這裏是錯誤的。將鍵轉換爲字符串後,字典無法正確匹配值。不幸的是,這並沒有幫助我解決問題。
Edit2:Key對象本身的類型是Range。將其分配給字符串變量會導致問題,比較在刪除操作上失敗。我嘗試過使用變體作爲替代,但是Key仍然被轉換爲字符串。
try dict.Keys() –
不起作用。我應該注意到我沒有收到錯誤信息。相關條目不會被刪除。 – narain
不要在刪除中使用pamentalization –