2015-06-17 12 views
0

Многие источники, например. https://support.microsoft.com/en-us/kb/187234, утверждают, что ключ словаря может быть из многих типов данных за пределами строки. Однако, когда я пробовал целые числа и даты как ключи, он терпит неудачу. Может кто-нибудь объяснить?VBA словарь данных типа

Я попробовал ответить @Tim Williams ниже, он работает. То, что я имел в своем распоряжении был

Private Sub trial() 
Dim dict As New Dictionary 

dt = 1 
'vols.marketDate = Date 
dict.Add dt, 4 'vols 
c = dict(dt) 
End Sub 

ли мой способ определения словаря сделать разницу по сравнению с @ Тим Уильямс?


Вторая часть моего вопроса связана со значением словаря. Я запустил следующий VBA код, стремясь использовать определенный пользователь структуру в качестве значения в дикции, и столкнулся сообщение об ошибке: enter image description here

Public Type volSurface 
    marketDate As Date 
End Type 


Private Sub trial() 
Dim dict As New Dictionary, vols As volSurface 

dt = 1 
vol.marketDate = Date 
dict.Add dt, vols 
c = dict(dt) 
End Sub 

Значит ли это, я не могу использовать конструкцию, значение в словарь или что-то еще я сделал не так? Если это последний случай, как я могу его исправить? не

ответ

2

Нет проблем здесь:

Sub Tester() 

    Dim d, k 
    Set d = CreateObject("scripting.dictionary") 
    d.Add 1, 1 
    d.Add "a", 2 
    d.Add #1/2/1978#, 3 
    d.Add CDbl(66), 4 
    d.Add CSng(99), 5 
    d.Add True, 6 

    For Each k In d.keys 
     Debug.Print TypeName(k), k, d(k) 
    Next k 

End Sub 

Выход:

Integer  1    1 
String  a    2 
Date   1/2/1978  3 
Double   66   4 
Single   99   5 
Boolean  True   6 

Если есть конкретный код у вас возникли проблемы с, то добавить, что на ваш вопрос.

+0

Я попробовал ваш образец. Оно работает. Я просто добавил свой исходный код в вопрос. Не могли бы вы взглянуть на то, как я объявляю словарь? Это действительно? – Hans

+0

Нет проблем с кодом в вашем вопросе –

+0

Спасибо, @ Тим Уильямс. Это странно, это не сработало раньше ... Я добавил второй вопрос, касающийся типа данных значения словаря. Не могли бы вы взглянуть на этот вопрос? – Hans

Смежные вопросы