VB字典赋值触发Run-time error '424':Object required问题求助
解决VBA Dictionary修改值时的Run-time error '424: Object required'
可能的原因及对应解决方案
1. 引用了错误的Dictionary对象
如果代码在Word等Office应用中运行,默认的Dictionary可能是应用内置的专用对象(比如Word的拼写检查字典),而非我们需要的键值对类型Scripting.Dictionary。
解决方法:
- 显式声明并创建Scripting字典:
Dim Dic As Scripting.Dictionary Set Dic = New Scripting.Dictionary - 或使用后期绑定(无需手动引用库):
Dim Dic As Object Set Dic = CreateObject("Scripting.Dictionary")
2. 日期参数格式错误
报错行中的CDate(1 / 14 / 2024)未给日期加引号,会被VBA解析为除法运算(1÷14÷2024),得到的是小数而非日期字符串,这种写法可能引发意外异常。
解决方法:
给日期字符串添加双引号,确保CDate解析正确格式的日期:
Dic("time") = CDate("1/14/2024")
3. 依赖默认属性赋值的异常
部分场景下,依赖Dictionary的默认Item属性直接赋值可能出现异常,可尝试显式调用Item属性:
解决方法:
Dic.Item("time") = CDate("1/14/2024")
4. 替代方案:删除后重新添加键值
若以上方法无效,可通过删除原有键再添加新键值对的方式实现修改:
If Dic.Exists("time") Then Dic.Remove "time" End If Dic.Add "time", CDate("1/14/2024")
内容的提问来源于stack exchange,提问作者Austin Weiss
相关产品推荐
相关产品推荐

