You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel VBA报错:Object variable or With Block variable not set 求助

解决VBA中“Object variable or With Block variable not set”错误

错误原因

TodoItem是对象类型的类模块,而Project类里的Items()数组是TodoItem对象数组。在VBA中给对象变量赋值必须使用Set关键字,原代码直接用Items(count) = item的方式没有正确设置对象引用,因此触发该错误。

修复方案

修改Project类模块中的AddItem方法,在数组元素赋值语句前添加Set关键字:

Public Sub AddItem(item As TodoItem)
    If count = size Then
        resize
    End If
    
    Set Items(count) = item ' 新增Set关键字修正对象赋值
    count = count + 1
End Sub

补充说明

  • TodoItem作为对象,数组中存储的是它的引用,必须通过Set完成赋值操作,否则会被当作值类型处理,导致引用未初始化的问题。
  • 初始化数组时ReDim Items(size)会生成一组值为Nothing的对象数组元素,只有通过Set赋值后,数组才会持有有效的TodoItem对象引用。

内容的提问来源于stack exchange,提问作者Jomy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 00:07:37