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

使用MSCORLIB.DLL中SortedList类的Add方法时VBA编译报错

解决VBA调用.NET SortedList.Add时的“Expected: =”编译错误

错误原因

VBA对无返回值方法的调用语法与.NET原生语法存在差异:

  • .NET中SortedList.Add是无返回值的void方法,但在VBA的COM互操作环境下,该方法被识别为VBA的Sub过程。
  • 若直接用括号包裹参数调用Sub过程,VBA会默认认为你试图将该过程的返回值赋值给某个变量(但它没有返回值),因此触发“Expected: =”编译错误。

解决方案

有两种正确的调用方式:

方式1:去掉参数外的括号直接调用

' 声明SortedList对象(确保已引用mscorlib.dll)
Dim mySortedList As New SortedList
' 直接调用Add方法,参数无需括号
mySortedList.Add "SampleKey", "SampleValue"

方式2:使用Call关键字配合括号调用

如果习惯带括号的写法,可通过Call关键字明确告知VBA这是调用无返回值的过程:

Dim mySortedList As New SortedList
Call mySortedList.Add("SampleKey", "SampleValue")

额外注意事项

  • 确认你的SortedList类型确实来自引用的mscorlib.dll,避免与其他库中的同名类冲突。
  • 你已完成.NET Framework 3.5的开启和mscorlib.dll的引用配置,这部分无需额外调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 06:29:52