VBA字典| Excel VBA词典使用指南

Excel VBA字典

使用VBA词典,我们可以将所有数据分组到一个词典中,以使用单个变量访问所有项。我们可以使用字典创建键-值组合的集合。将对象链接到键之后,稍后,我们可以仅使用键名称来调用它们。

VBA词典很难进入,但是我们会尽力使您更容易理解。我们可以按相同的比例比较Dictionary和Collection,但是某些VBA词典提供了某些VBA Collections对象不可用的功能。

使用VBA词典

为了使用VBA Dictionaries,我们首先要做的是将对象引用设置为“ Microsoft Scripting Runtime”。

要设置参考,请遵循以下步骤。

步骤1: 转到工具>参考。

第2步: 向下滚动并选择“ Microsoft脚本运行时”选项,然后单击“确定”。

现在,我们可以使用脚本库访问VBA词典。

您可以在此处下载此VBA词典Excel模板– VBA词典Excel模板

使用VBA代码创建字典实例

将引用设置为“ Microsoft脚本运行时”后,我们需要创建VBA词典的实例。首先,将变量声明为 脚本字典

代码:

 Sub Dict_Example1()Dim Dict as Scripting.Dictionary End Sub

现在,变量“ Dict”是一个对象变量。对于对象变量,我们需要使用单词“ New”来设置对象引用。

设置Dict =新脚本

现在,我们可以访问字典的所有属性和方法。

笔记: 所有绿色按钮式单词都是“方法”,其他都是“属性”。

现在将一个变量声明为DictResult。

Dim DictResult作为变体

现在,使用“ Dict”变量,我们将创建一个新密钥。

钥匙 这就是我们要添加的词。让我们将手机名称添加为“ Redmi”。

物品 只是这个词的定义(钥匙),我们已经添加了。手机的定义是它的价格,因此我将价格加到15000。

现在,对于另一个变量“ DictResult”,我们将使用“ Dict”变量添加关键字。

钥匙 是我们在上一步中创建的单词,即电话名称。

现在变量 “ DictResult” 有我们添加的密钥项。现在,在VBA消息框中显示变量的结果。

代码:

 Sub Dict_Example1()Dim Dict As Scripting.Dictionary Set Dict = New Scripting.Dictionary Dim DictResult As Variant Dict.Add Key:=“ Redmi”,项目:= 15000 DictResult = Dict(“ Redmi”)MsgBox DictResult End Sub 

现在,手动运行代码或使用F5键,然后会出现一个消息框,向您显示价格(物品)的电话(钥匙),我们使用“字典”添加了。

了解钥匙和物品

如果您不了解KEY&ITEM,请允许我用一个简单的例子向您解释。想象一下现实世界中的字典,有了这个字典,我们有了单词(键)和这些单词的含义(项目)。同样,单词是键,定义或含义是项。

现在,再看一本字典的例子。假设您正在搜索特定人员的电话号码。您如何搜寻?

显然,通过使用我们在保存电话号码时使用的名称。这里我们有两件事,一是 人名 &第二个是 电话号码。

人名 钥匙。

电话号码 物品。

如果您想要Excel的示例,我们可以举VLOOKUP为例。我们使用公式根据LOOKUP VALUE查找值 (钥匙)。 由VLOOKUP函数返回的结果称为 物品。

检查手机是否在那里

想象一下,您正在向用户提供用户表格,以通过一个简单的输入框查看手机的价格。在Excel VBA代码下方,用户面前会出现一个输入框,他们需要输入他们要寻找的手机品牌,如果词典中有该品牌名称,它将显示相应手机的价格,否则它将显示该手机的价格。将消息显示为“您要查找的电话在图书馆中不存在”。

代码:

 Sub Dict_Example2()Dim PhoneDict如Scripting.Dictionary Dim DictResult As Variant Set PhoneDict = New Scripting.Dictionary PhoneDict.Add键:=“ Redmi”,项目:= 15000 PhoneDict.Add键:=“ Samsung”,项目:= 25000 PhoneDict .Add键:=“ Oppo”,项:= 20000 PhoneDict.Add键:=“ VIVO”,项:= 21000 PhoneDict.Add键:=“ Jio”,项:= 2500 DictResult = Application.InputBox(提示:= “请输入电话名称”)如果PhoneDict.Exists(DictResult),则MsgBox“电话价格”和“ DictResult&”为:“&PhoneDict(DictResult)其他MsgBox“您要查找的电话不存在库”如果结束则结束 

使用F5键或手动运行此代码,然后查看结果。