Спасибо, что прочитали это.
Я работаю над личным проектом.Я написал скрипт, который добавляет Scripting Runtime (для использования типа Dictionary), а затем объявляет переменную, такую как DictSummary, как Scripting.Dictionary.Проблема в том, что VBA не допускает этого, так как сканирует код на наличие ошибок даже до его запуска.Когда среда выполнения сценариев не добавляется, Dim DictSummary as Scripting.Dictrionary дает «Определяемый пользователем тип не определен» ошибка.
If ReferenceIsAdded("Scripting") = False Then
If ProjectIsNA Then
Exit Function
Else
ThisWorkbook.VBProject.References.AddFromFile "C:\Windows\System32\scrrun.dll"
End If
Dim DictSummary As Scripting.Dictionary
Я попытался добавитьФункция, которая объявляет, назначает и возвращает переменную типа Dictionary, чтобы избежать этой ошибки.
Public Function AddADict() As Variant
Dim myDict As Scripting.Dictionary: Set myDict = New Scripting.Dictionary
Set AddADict = myDict
End Function
Затем я получаю переменную, подобную этой
Set DictSummary = AddAdict()
Она действительно избегает этой ошибкино возвращаемая переменная не совсем такая, тип DictSummary - Variant / Object / Dictionary, в то время как для этой переменной он должен быть Dictionary / Dictionary.Я попробовал On Error Resume Next, но это не помогает.
Есть ли способ избежать этого или есть способ необязательного объявления переменной?