gpt4 book ai didi

excel - 从项目集合中调用项目

转载 作者:行者123 更新时间:2023-12-04 20:02:09 27 4
gpt4 key购买 nike

我有一个“货币”类和一个“货币”类,它是“货币”类对象的实例的集合。我认为这类似于 Excel 的 Worksheet类是 Sheets 的成员收藏。我可以通过索引或“键”来寻址任何成员,例如 Sheets(1)或`Sheets(“Sheet1”)。
这是我的“货币”类模块中的代码。它在这里使用的缩写,可能无法运行,这不是问题。

Private Sub Class_Initialize()
' Class "Currencies"

Dim R As Long

Set AllCcys = New Collection
Arr = .Range("Currencies").Value
For R = 1 To UBound(Arr)
Set Ccy = Me.Add(Arr(R, 1))
Next R
End Sub

Public Function Add(ByVal Key As String) As cCcy

Dim Fun As cCcy

Set Fun = New cCcy
AllCcys.Add Fun, Key
Fun.Key = Key
Set Add = Fun
End Function

Public Property Get Item(Key As Variant) As cCcy
Set Item = AllCcys(Key)
End Property
通过我的设置,我可以使用 Currencies.Item("USD").Rate 之类的语法访问任何“货币”对象。或 Currencies.Item(1).Rate我认为这很复杂。我想使用 Currencies("USD").Rate类似于我在访问 Excel 的 Sheets 时所做的事情收藏。
我怎样才能做到这一点?

最佳答案

根据http://www.cpearson.com/excel/DefaultMember.aspx ,您可以通过以下步骤将自定义类中的任何过程指定为默认成员:

  • 导出 Currencies类(class)模块
  • 在记事本中打开导出的模块
  • 添加 Attribute Value.VB_UserMemId = 0在您的 Item像这样的属性(property):
  • Public Property Get Item(Key As Variant) As cCcy
    Attribute Value.VB_UserMemId = 0
    Set Item = AllCcys(Key)
    End Property
  • 保存并导入回您的文件。

  • 注意:您只能将 1 个程序作为默认成员,您将看不到 Attribute Value.VB_UserMemId = 0 行在 VBE 中。

    关于excel - 从项目集合中调用项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68720163/

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