错误 438 对象不支持此属性或方法 - 带字典的类对象

2023-12-10

Background:

这是一个后续问题this我最近问的问题是如何返回数组Class模块属性直接来自Dictionary item.

我现在已经尝试过与Property Let and Property Get填充一个Private Array来填充Dictionary和。但是,运行一些测试时我遇到了Error 438.

Code:

Imagine TstClass作为具有以下代码的类模块:

Private lst(0 To 2) As Variant

Public Property Let Add(ByVal i As Long, ByVal NewVal As Variant)
    lst(i) = NewVal
End Property
Public Property Get Val(ByVal i As Long) As Variant
    Val = lst(i)
End Property

Public Function GetArray() As Variant
    GetArray = vals
End Function

然后在模块中测试这段代码:

Sub Test()

Dim x As Long, arr As Variant, lst As Class1
Dim dict As Object: Set dict = CreateObject("Scripting.Dictionary")

For x = 1 To 3
    Set lst = New Class1
    lst.Add(0) = x
    lst.Add(1) = x
    lst.Add(2) = x
    dict.Add x, lst
Next x

For x = 4 To 3 Step -1
    If dict.Exists(x) = False Then
        Set lst = New Class1
        lst.Add(0) = x
        lst.Add(1) = x
        lst.Add(2) = x
        dict.Add x, lst
    Else
        Set lst = dict(x)
        lst.Add(1) = lst.Val(1) + 2
        lst.Add(2) = lst.Val(2) + 2
        dict(x) = lst '< Error 438 on this line
    End If
Next x

For Each key In dict.keys
    arr = dict(keys).GetArray
Next key

End Sub

Problem:

错误 438 将发生在dict(keyx) = lst并告诉我该对象(字典)不支持此Property or Method。这个问题对我来说似乎很棘手lst对象似乎没有问题dict.Add x, lst。事实上,改变方法Item通过其Key这似乎是一个非常common实践。

Question:

而类似的东西Dict.Add x, "Hello"进而Dict(x) = "Hello World"似乎有效。代码在使用时出错Class第二种方法中的对象。有谁知道为什么,如果是的话,如何处理这个问题?

谢谢你, 联合病毒


Set dict(keyx) = lst 

由于变量lst指的是一个对象,Set这里需要。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

错误 438 对象不支持此属性或方法 - 带字典的类对象 的相关文章

随机推荐

  • C++程序设计

    如何有效地设计C 模块化程序 如何学习 对于初学者 您可能想要采取 暴力 过程 1 写一个简单的main函数在一个文件中 2 添加一些功能 编译然后测试 3 重构 在Google中使用这个关键字 以下是一些重构指南 并非所有指南都可以同时适
  • 父进程:子进程已退出,状态为 3221226356 -- 正在重新启动

    我正在 Windows 7 Home Premium 上运行带有 XAMPP 1 8 1 Apache 2 4 3 和 PHP 5 4 7 的测试服务器 昨天一切都运行良好 但今天我开始在 Apache 的 error log 中收到此消息
  • PHP 中的 EVP_BytesToKey 实现

    我一直在尝试在 PHP 中实现与 C 中完全相同的函数 但是 我还没有看到完全相同的结果 我认为问题在于我仍然不完全理解的 计数 或迭代 函数定义 int EVP BytesToKey const EVP CIPHER type const
  • Django Rest Framework:通过 AJAX 上传文件

    我有一个视图和序列化器 class UserView generics RetrieveUpdateAPIView model get user model serializer class UserProfileSerializer pe
  • 运行时与编译时

    运行时和编译时有什么区别 编译时和运行时之间的差异就是尖头理论家所说的一个例子相区别 它是最难学习的概念之一 特别是对于没有太多编程语言背景的人来说 为了解决这个问题 我发现询问很有帮助 程序满足什么不变量 这个阶段可能会出现什么问题 如果
  • KeyListener 未到达我的 switch 语句

    我有这个代码 import java awt Color import java awt Graphics import java awt event KeyEvent import java awt event KeyListener i
  • 在 JavaScript 中选择目录路径[重复]

    这个问题在这里已经有答案了 有没有办法通过 JavaScript 选择目录 不是用于上传文件 只是选择目录路径 目录对话框什么的 出于安全原因 您不能这样做 您不希望网站能够了解您的文件系统 参见下文 当您获取文件输入的值时 它将被破坏 例
  • 所有文档中的成对推土机距离(word2vec 表示)

    是否有一个库可以获取文档列表并集体计算 nxn 距离矩阵 其中提供了 word2vec 模型 我可以看到 genism 允许您在两个文档之间执行此操作 但我需要对所有文档进行快速比较 就像 sklearns cosine similarit
  • PHP获取存储过程的返回值

    我很高兴通过 PDO 使用 SQL Server 来处理旧版 PHP 应用程序 在 PHP 中如何检索正在使用的存储过程的返回值RETURN语句作为输出通道 示例程序 CREATE PROCEDURE dbo mleko test para
  • Tkinter:缩放画布上的项目

    我试图了解画布的缩放是如何工作的 以下面的代码为例 这是为什么canvas scale all 绑定到鼠标滚轮 正在缩放所有矩形 而不是文本 如何实现文本与矩形的缩放 import Tkinter as tk import random p
  • 从大量条目中实现选择框的最佳方法

    我有一大组数据 用户必须从中选择一个 我正在考虑一种实现它的方法 当然 在 GUI 中 我有几个想法 但只是想在这里发帖 因为可能有更好的选择 比如说 用户必须从大量用户群中选择一个名称 如果我只是放置一个文本字段供用户输入名称 那么可能会
  • 浏览器 cookie 域如何工作?

    由于我遇到了奇怪的域 子域 cookie 问题 我想知道浏览器如何处理 cookie 如果他们以不同的方式做事 那么了解其中的差异也很好 换句话说 当浏览器收到 cookie 时 该 cookie 可能附加一个域和一个路径 或者不是 在这种
  • 编译器何时以及为何将 malloc/free/new/delete 上的内存初始化为 0xCD、0xDD 等?

    我知道编译器有时会使用某些模式初始化内存 例如0xCD and 0xDD 我想知道的是when and why有时候是这样的 When 这是否特定于所使用的编译器 Do malloc new and free delete对此也以同样的方式
  • 使用 Powershell 调用 Web 服务上的异步 Web 方法

    我正在使用 PowerShell V2 并尝试找到使用 Web 服务代理调用异步 Web 方法的示例 这是我到目前为止的代码 Uri http localhost mywebservice asmx wsdl proxy New WebSe
  • Linq 在单个集合中检查重叠的日期范围

    Class TimeRange private DateTime StartDate get set private DateTime EndDate get set List
  • 有没有办法告诉 Rust 编译器在处理恐慌时对部分初始化的数组元素调用 drop ?

    我正在研究自定义类型 我有以下要求 避免堆分配的元素的集合 我使用数组而不是Vec 该集合包含不可复制的类型 实施Default对于也实现的类型Default 实施From这样我就可以直接从数组构建它 我最大的问题是实施Default以安全
  • java.lang.StringIndexOutOfBoundsException:字符串索引超出范围

    你好 我写了一个java代码来查找由其他单词组成的最长单词 我的逻辑是从文本文件中读取单词列表并将每个单词添加到一个数组中 在文本中单词已排序 每行中只有一个单词 之后 我们检查数组中的每个元素是否有其他元素作为子字符串 如果是这样 我们计
  • 增加字符串末尾的数字

    我正在尝试解决一个问题 该问题表示要添加1在一个的末尾string 意思是 1 abcd12会变成 abcd13 2 abcd099会变成abcd100 3 abcd01会变成abcd02 4 ddh add 2204会变成ddh add
  • Git 允许通过未暂存的更改进行分支更改

    当我有未暂存的更改 修改后的文件 时 Git 允许我更改分支 某处有这方面的配置吗 编辑 起初我认为这是一个配置 我需要将其设置为如果存在已修改的未暂存文件 则禁止在分支之间进行更改 但根据艾米丽的评论 如果分支之间的文件不同 系统似乎会提
  • 错误 438 对象不支持此属性或方法 - 带字典的类对象

    Background 这是一个后续问题this我最近问的问题是如何返回数组Class模块属性直接来自Dictionary item 我现在已经尝试过与Property Let and Property Get填充一个Private Arra