首页
学习
活动
专区
圈层
工具
发布

Excel VBA解读(156): 数据结构—ArrayList

在VBA中,ArrayList与内置的Collection对象类似,但提供了更丰富的功能,包括排序、数组转换、删除所有元素项目等。...然而,ArrayList不是VBA内置的对象,需要我们添加对外部库的引用,才能够使用它。 创建ArrayList 可以使用前期绑定或后期绑定来添加对包含ArrayList的外部库的引用。...图1 此时,可以使用下面的代码来声明ArrayList: Dim alCol As New ArrayList 或者: Dim alCol As ArrayList Set alCol = New ArrayList...后期绑定 可以先不引用,而是使用CreateObject函数来创建ArrayList: Dim alCol As Object Set alCol = CreateObject("System.Collections.ArrayList...图4 可以看出,ArrayList中的下标从0开始,最后一个元素的下标为其元素数量减1。注意,代码中使用Count属性返回ArrayList中元素的个数。

7.3K10

Excel VBA解读(157): 数据结构—ArrayList(续)

排序 Sort方法对ArrayList按升序排列: Sub testSort() Dim alCol As Object Set alCol = CreateObject("System.Collections.ArrayList...图7 “克隆”ArrayList 使用Clone方法可以创建ArrayList的全新副本: Sub testClone() Dim alColl1 As Object Set alColl1...注意,如果使用语句: set alColl2 = alColl1 将指向同一个ArrayList。 注意,代码中使用Clear方法删除ArrayList中的所有元素项。...复制ArrayList到数组 ToArray方法可以将ArrayList复制到数组: Sub testClone() Dim alColl As Object Set alColl =...图9 将ArrayList复制到二维数组 可以创建一个自定义函数,将ArrayList复制到二维数组。这样,就可以直接将值写入到工作表单元格区域中。

3.2K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    VBA操作VBA——VBA工程对象

    1、什么是VBA操作VBA: 前面的VBA意思是指VBA程序,后面的VBA是指VBA工程对象(代码和组织代码的模块、类等)。 也就是一段运行过程中的VBA程序,可以去操作VBA工程对象。...能被操作的东西显然就是一种对象,首先如果要使用VBA去操作VBA工程对象,先按如下设置: ? 勾选信任对VBA工程对象模型的访问,这时候就可以去使用VBA工程对象了。...2、VBA工程对象: 在F2对象浏览器中查看VBAProject: ? 每一个打开的Excel工作簿文件都有一个VBAProject,不管是有没有代码的。...在使用VBA编辑器的时候,有一个叫做工程资源管理器的窗口: ?...3、输出VBA工程对象名称: 简单使用一下这个VBA工程对象,和其他VBA库对象用法都差不多,要输出打开的这些VBA工程名称,非常简单,只要循环然后输出它的Name属性: Sub TestVBProject

    4.3K20

    ArrayList详解

    一、概述 1、概述 基于数组实现,查询快,增删慢; 没有同步锁,多线程不安全; 自动扩容,使用方便; 2、基于数组实现,查询快,增删慢 ArrayList底层基于数组实现,元素连续存储...之前的元素到新的数组 * 效率较低,最好初始化一个较为合适的长度,减少扩容次数 */ // 无参构造,赋值一个空数组,当添加第一个元素的时候初始化容量为10 public ArrayList...{ this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA; } // 指定初始容量大小的构造函数 public ArrayList...1、概述 * 1、使用List list = new Vector();,这个答案对,但是一个很笨拙的答案;(不推荐) * 2、让ArrayList变得安全:List...list = Collections.synchronizedList(new ArrayList());(不推荐) * 3、JUC的解决方案:List list = new CopyOnWriteArrayList

    35210
    领券