Использование частного словаря в модуле - PullRequest
0 голосов
/ 07 февраля 2012

Я хочу использовать словарь как личную переменную в модуле.Я попробовал следующий код, но редактор vba помечает коллекцию (переменный ресурс) красным, когда я хочу получить к ней доступ в процедуре.Как мне это закодировать?

Option Explicit

Private Type Translation
    german As String
    french As String
    italian As String
End Type

Private resource
Set resource = CreateObject("scripting.dictionary")

Public Sub addTranslation(key As String, g As String, f As String, i As String)
    Dim trx As Translation
    trx.german = g
    trx.french = f
    trx.italian = i

    resource.add(key, trx)  '<== marked red
End Sub

'more methods to come which do access resource

1 Ответ

1 голос
/ 07 февраля 2012

Экземпляр:

Set resource = CreateObject("scripting.dictionary")

Нужно быть в подпрограмме / функции, не входящей в объявление, вы можете добавить ее в удобное для вас место или изменить объявление на:

Private resource as object

идобавьте контрольную проверку всякий раз, когда вы получаете к ней доступ (очевидно, лучше создать ее один раз в другом месте);

If resource Is Nothing Then Set resource = CreateObject("scripting.dictionary") 

И в вызове .add не должно быть скобок, поэтому:

resource.Add key, trx
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...