【发布时间】:2018-01-16 13:43:39
【问题描述】:
在我的 VBA 代码中,我使用以下代码:
Dim docsToSave As Scripting.Dictionary
Set docsToSave = New Scripting.Dictionary
Dim toRemove As Collection
Set toRemove = New Collection
...
More Code
...
For i = 1 To toRemove.Count
docsToSave.Remove (toRemove.Item(i))
Next
与字典相比,集合的好处在于您可以使用它们的项目编号来检索键。
我的问题是我需要将我的 VBA 代码转换为 CATScript(类似于 VBScript)。
我认为从另一个列表中减去一个“键、项”列表的代码并不容易获得像上面这样简单的代码。
修复我的代码以使其在 CAT/VB 脚本中工作的最佳方法是什么?
我相信使用 Array 可能是可行的,因为我通常在编码方面非常陌生,所以我想在尝试使其与 Arrays 一起使用之前,我会先在这里询问更好的方法。
编辑:
此问题与CATIA VBA Enable use of “Scripting.Dictionary” in .CATScript 不同,因为此问题专门要求提供有关如何在 VBScript 中使用字典的信息,以便复制现有 VBA 脚本中使用的集合的行为。
【问题讨论】:
-
VBA and VBScript share a lot of similarities 这意味着您应该能够毫无问题地转换代码。
-
“集合”在 VBScript 中不存在,不幸的是,我在这里使用集合的方式是字典无法实现的。
-
VBScript 不是强类型的,所以它不知道
As Collection是什么,一切都是Variant数据类型。但它支持 COM,因此您没有理由无法访问 COM 可见的Collection对象 -
对,我缺少一些关于这一切如何运作的信息。你的 cmets 很有帮助。