将ArrayList转换为数组时触发运行时错误‘5’:无效过程调用或参数
VBA ArrayList实现数组排序时的赋值错误解决
错误原因
运行时错误‘5’的根源是不能直接将ArrayList对象赋值给Variant数组,必须调用ArrayList内置的ToArray()方法完成对象到数组的转换操作。
修正后的代码
Sub Arrlist_to_Array() Dim arrlist As Object Dim arr() As Variant, item As Variant Set arrlist = CreateObject("System.Collections.ArrayList") arr = Array("5", "7", "4") For Each item In arr arrlist.Add item Next arrlist.Sort ' 调用ToArray方法完成ArrayList到数组的转换 arr = arrlist.ToArray() End Sub
关键说明
- ArrayList的
Sort()方法会直接对内部存储的元素完成排序,无需额外逻辑处理 - 转换为数组时必须使用
ToArray()方法,该方法返回Object类型数组,可直接赋值给声明的Variant数组arr()
内容的提问来源于stack exchange,提问作者Leedo
相关产品推荐
相关产品推荐

