gpt4 book ai didi

vba - 如何在 Excel 中制作公共(public)字典

转载 作者:行者123 更新时间:2023-12-04 13:35:07 26 4
gpt4 key购买 nike

我有这样的事情:

Private Sub ComboBox1_Change()
'(...do something related to alpha...)
End Sub

Private Sub UserForm_Activate()
Set alpha = CreateObject("Scripting.Dictionary")
'(...do something like add keys and values to the alpha dictionary...)
End Sub

我是 VBA 的新手,我注意到 alpha字典只能在 UserForm_Activate里面使用,所以我想创建一个全局变量以便在 ComboBox1_Change 中使用它.

但我不能。

我尝试了一些更简单的东西,比如整数。
Public x as Integer

Private Sub ComboBox1_Change()
MsgBox(x)
End Sub

Private Sub UserForm_Activate()
x = 5
End Sub

这个工作,但如果我用字典( Public alpha as Scripting.Dictionary )做类似的事情,它会引发(来自西类牙语)“编译错误:它没有定义用户定义的类型”。我不知道该怎么办。

最佳答案

拥有一个带有 Form 的 Class 模块的 Public 对象是个坏主意。除非对象只能在类中访问,否则应将可访问性更改为 Private ,考虑将它放在标准模块中。

您也可以通过 Public 属性公开它,因此您不必担心对象的构造。

Private objAlpha As Object

Public Property Get Alpha() As Object
If objAlpha Is Nothing Then Set objAlpha = CreateObject("Scripting.Dictionary")
Set Alpha = objAlpha
End Property

调用它:
If Alpha.Exists("SomeText") Then
'...
End If

这样它就可以在项目中的任何地方引用。

关于vba - 如何在 Excel 中制作公共(public)字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47724711/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com