2

从我的MS Excel 2010安装内部,我打开了Visual Basic Editor。(选项卡开发人员工具 -> Visual Basic)

Visual Basic 编辑器中, 我右键单击项目窗口并创建了一个模块。(插入 -> 模块)

然后我在代码窗口中输入以下代码:

Sub myFunction()
    'do some stuff to my table cells, not important
End Sub


在函数体内编码了很多东西之后,我认为我需要一个 Hashmap,它需要在给定的函数体内访问。不幸的是,我无法通过这样做导入所需的类:

Imports System.Collections
Sub myFunction()
    'do some stuff to my table cells, not important
End Sub

按 F5 启动模块时会出现错误消息。它说(由我从德语翻译成英语):“编译时出错:在程序之外是非法的”

当代码的结构像上面这样时,怎么可能在 VBA 中导入一些东西?我通常是java 或 python人。如果函数仍在执行,您还可以重新构造代码。

4

1 回答 1

5

在这种情况下,您可以使用

收藏

或者

字典


Collection类是内置在VBA 中的,因此您无需添加外部引用即可使用它。你可以简单地声明它

Dim c as Collection
Set c = new Collection

Collection公开 4 种方法:add, count, item, remove所以它可能对你来说还不够。

Customizing, expanding Collection class


如果您想使用HashTable/HashMap之类的东西,请在 VBE 窗口中Microsoft Scripting Runtime单击Tools和添加引用References

Dictionary那么你可以在课堂上使用早期绑定和智能感知

Dim d as Dictionary
Set d = new Dictionary

或者使用后期绑定

Dim d as Object
set d = CreateObject("Scripting.Dictionary")

我会选择早期绑定(第一个示例 - 添加对 VBA 项目的引用),以便您可以使用 VBA Intellisense。

您可以使用对象浏览器查看DictionaryCollection分类 - 只需F2在 VBE 窗口中点击并输入DictionaryCollection

在此处输入图像描述

有用的阅读Dictionary class

于 2013-10-17T11:19:49.160 回答