CATIA VBA Включить использование Scripting.Dictionary в .CATScript

При запуске .CATScript, код которого был скопирован из среды VBA и функционирует должным образом при запуске в среде VBA, я получаю следующую ошибку:

Скриптовый движок сообщил о следующей ошибке:

Источник: ошибка выполнения Microsoft VBScript.

Описание: переменная не определена: «Сценарий».

Линия: 9

Колонка: 4

Как сделать так, чтобы этот скрипт использовал справочную библиотеку Microsoft Scripting Runtime?


person Laurens Ruben    schedule 15.01.2018    source источник
comment
Похоже, вы еще не добавили его в качестве ссылки в свой проект.   -  person braX    schedule 15.01.2018
comment
В среде VBA я отметил требуемую ссылку, и мой сценарий работает, однако, когда я копирую этот сценарий в блокнот и сохраняю его как .CATScript, он выдает указанную ошибку. Возможно, есть способ создать/экспортировать необходимый .CATScript непосредственно из среды VBA, который автоматически включает все ссылки. Или, может быть, мне нужно добавить код в скрипт, чтобы он вызывал нужную ссылку.   -  person Laurens Ruben    schedule 15.01.2018
comment
Если CATScript похож на VBScript, вам нужно объявить свои переменные как поздние привязки. Если да, поищите в Google VBScript и VBA.   -  person S Meaden    schedule 15.01.2018
comment
Я добавлю ответ на свой вопрос, не могли бы вы подтвердить, решит ли этот метод мою проблему? (Я не могу проверить, правильно ли это, потому что я больше не на своей рабочей станции)   -  person Laurens Ruben    schedule 15.01.2018


Ответы (2)


Ваше решение должно работать.

Чтобы иметь возможность использовать «Scripting.Dictionary» в VBA, перейдите в «Инструменты» -> «Ссылки» и выберите «Среда выполнения сценариев Microsoft».

person C R Johnson    schedule 16.01.2018
comment
Я верю, что мое решение действительно сработает, однако у меня все еще есть одно последнее препятствие, прежде чем мой сценарий наконец заработает (вероятно). Я использую коллекцию в своем коде VBA. См. мой новый вопрос здесь: stackoverflow .com/questions/48282675/ - person Laurens Ruben; 16.01.2018

Я немного искал в Google, и я считаю, что следующее решит мою проблему:

'in original VBA code:
Dim dict As Scripting.Dictionary
Set dict = New Scripting.Dictionary

'To have this work in .CATScript, replace the code above with:
Dim dict
Set dict = CreateObject _
("Scripting.Dictionary")
person Laurens Ruben    schedule 15.01.2018