在Excel VBA中使用System.Collections.ArrayList所需的.NET Framework版本
VBA中使用System.Collections.ArrayList的.NET Framework版本疑问解答
好问题!我来帮你理清这个关于VBA调用.NET ArrayList的版本困惑:
官方文档的说法是准确的:
System.Collections.ArrayList类确实存在于多个.NET Framework版本中——从1.1开始,一直到最新的4.x系列都包含它(虽然在.NET 2.0之后它被泛型List<T>替代,且被标记为过时,但依然可以正常使用)。关于“必须安装3.5”的误解:
有些网站提到的强制安装3.5的说法,大概率是源于旧环境的遗留问题(比如早期Windows系统默认只预装低版本.NET,或者某些特定场景下的兼容性测试)。实际上,只要你的系统安装了**.NET Framework 2.0及以上版本**(包括3.5、4.0、4.7等所有后续版本),都可以通过后期绑定的方式调用ArrayList。你的后期绑定代码的兼容性:
你使用的这段代码:Dim arrLst As Object Set arrLst = CreateObject("System.Collections.ArrayList")是完全正确的后期绑定写法,它会自动查找系统中已安装的、兼容的.NET版本来实例化ArrayList类,不需要依赖特定版本的引用。只要系统里有任何支持该类的.NET版本(2.0+),代码就能正常运行,不需要额外安装3.5版本(除非你的系统完全没有安装任何符合要求的.NET版本)。
额外验证建议:
如果你仍有疑虑,可以在仅安装了.NET 4.7(未安装3.5)的机器上测试这段代码——你会发现它能正常创建ArrayList实例并执行相关操作,这足以证明高版本.NET完全支持VBA调用该类。
内容的提问来源于stack exchange,提问作者mh166
相关产品推荐
相关产品推荐

