在vba中声明和使用总体词典
我是编程新手,尤其是vba新手,但我正在尽我最大的努力,现在我需要你的帮助 因此,我想要实现的是: 我用word做了一个界面。有多个按钮。如果单击了一个按钮,则程序应检查所单击的按钮标题是否是字典中的键,该字典在按钮单击的sub之外声明 比如: 我点击按钮1,上面写着:“工作”->检查“工作”是否是字典中的一个键->如果是,用键“工作”的第一项覆盖按钮标题 我点击按钮2,上面写着:“home”->检查“home”是否是字典中的一个键->如果是,用键“home”的第一项覆盖按钮标题 如果按钮标题没有键,则应在文件中搜索按钮标题,并在标签中打印下一段(->效果相当好) 我的做法:在vba中声明和使用总体词典,vba,dictionary,variables,declaration,Vba,Dictionary,Variables,Declaration,我是编程新手,尤其是vba新手,但我正在尽我最大的努力,现在我需要你的帮助 因此,我想要实现的是: 我用word做了一个界面。有多个按钮。如果单击了一个按钮,则程序应检查所单击的按钮标题是否是字典中的键,该字典在按钮单击的sub之外声明 比如: 我点击按钮1,上面写着:“工作”->检查“工作”是否是字典中的一个键->如果是,用键“工作”的第一项覆盖按钮标题 我点击按钮2,上面写着:“home”->检查“home”是否是字典中的一个键->如果是,用键“home”的第一项覆盖按钮标题 如果按钮标题没
Public d
Function Main()
Set d = New Scripting.Dictionary
d.Add "menu", Array("home", "friends", "money")
d.Add "home", Array("cat", "dog", "mouse")
d.Add "work", Array("boss", "employes")
End Function
Function Main()
Public d As Scripting.Dictionary
Set d = CreateObject("Scripting.Dictionary")
d.Add "menu", Array("home", "friends", "money")
d.Add "home", Array("cat", "dog", "mouse")
d.Add "work", Array("boss", "employes")
End Function
Sub btn_Click()
schl = btn.Caption
If d.Exists(schl) = True Then
x=d(schl)
btn.Caption = x(1)
End If
End Sub
->需要对象(错误424)
我试图像这样将d声明为静态(其余代码相同):
->编译失败:未定义用户定义的类型
因此,我对自己的概念非常不确定,非常感谢有人给我提供了关于如何改进我的编码风格和程序本身的提示!
提前谢谢
编辑: 我尝试了Tim Williams的方法:
Public d As Scripting.Dictionary
Function Main()
Set d = CreateObject("Scripting.Dictionary")
d.Add "menu", Array("home", "friends", "money")
d.Add "home", Array("cat", "dog", "mouse")
d.Add "work", Array("boss", "employes")
End Function
and got:未设置对象变量(错误91)
如果我正确理解BigBen和Manpret Singh Dhillon并尝试了他们的方法:
Public d
Function Main()
Set d = New Scripting.Dictionary
d.Add "menu", Array("home", "friends", "money")
d.Add "home", Array("cat", "dog", "mouse")
d.Add "work", Array("boss", "employes")
End Function
I get:Object required(错误424)您需要在sub之外将字典声明为全局变量(除了向项目添加脚本运行时引用)
您还可以将
CreateObject
调用翻转到一个New Scripting.Dictionary
以在早期绑定中保持一致。如果您不想添加引用,请将d声明为Public d而不定义它如果我尝试Public d Function Main()Set d=New Scripting.Dictionary d.add“menu”,Array(“home”,“friends”,“money”)d.添加“home”,数组(“cat”,“dog”,“mouse”)d.添加“work”,数组(“boss”,“employes”)结束函数我得到:Object required(错误424)发布的代码(两个版本)在参考Microsoft脚本运行时后对我来说都很好。还有一件事你没有告诉我们。你在Mac电脑上吗?除非您添加第三方库/模块,否则那里没有字典。
Public d As Scripting.Dictionary
Function Main()
Set d = CreateObject("Scripting.Dictionary")
d.Add "menu", Array("home", "friends", "money")
d.Add "home", Array("cat", "dog", "mouse")
d.Add "work", Array("boss", "employes")
End Function