如何从字典中打印课程

时间:2020-08-26 09:36:45

标签: excel vba class dictionary

我正在努力实现一个字典,该字典每个键包含多个值,因此我改编了本教程/示例中的代码:https://excelmacromastery.com/vba-dictionary/#Example_2_8211_Dealing_with_Multiple_Values

我用以下代码创建了一个名为clsAI_App的类:

Public ApplicationID As String
Public AIName As String
Public DoseApplied As Double

在我的模块中使用了以下位:

For k = LBound(contents, 2) To UBound(contents, 2)
        Set oApplication = New clsAI_App
        oApplication.ApplicationID = Row & "-" & k
        oApplication.AIName = contents(1, k)
        oApplication.DoseApplied = contents(2, k) * wks_In.Cells(Row, 5)
        dict.Add oApplication.ApplicationID, oApplication
next k

其中Rowk是整数,contents()是(1,3)(1,5)的矩阵

现在,如果我使用打印字典的方法作为对How do I Debug Print keys and values in dictionary using VBA?的答复而给出:

Dim key As Variant
For Each key In dict.Keys
    Debug.Print key, dict(key) 
Next key

我最终出现错误438:

对象不支持此属性或方法

其中的描述过于笼统。所以我茫然在这里做错了。

1 个答案:

答案 0 :(得分:1)

我没有看到您发布的链接,但是由于您加载了一个对象(oApplication)并且Debug.Print返回了字符串,因此您必须修改代码以返回一个字符串类属性。我会尝试:

Debug.Print key, dict(key).DoseApplied...

如果所讨论的类具有许多这样的属性,则可以提取所有这些属性。

词典是一个功能强大的工具,能够保留各种变量,对象甚至函数...