首页 » SEO优化 » phparraywork技巧_VBA数组进阶调用NET ArrayList

phparraywork技巧_VBA数组进阶调用NET ArrayList

访客 2024-11-26 0

扫一扫用手机浏览

文章目录 [+]

但是VBA数组比较鸡肋,功能比较弱,利用起来不是很方便,须要自行封装很多数组方法,这对付新手来说很不友好。

本日给大家讲讲,怎么用.Net自带的ArrayList扩展VBA数组功能。

phparraywork技巧_VBA数组进阶调用NET ArrayList

序言

要在VBA中利用.Net的ArrayList,须要提前导入mscorlib.dll引用。
拜会下图。
本文会分享ArrayList常用的一些方法。

phparraywork技巧_VBA数组进阶调用NET ArrayList
(图片来自网络侵删)

添加元素方法:Add,Insert

Add:用于在元素尾部添加元素

Insert用于在任意位置添加元素

Sub ArrayListExample()'声明和创建ArrayList工具Dim MyList As New ArrayList' 添加值MyList.Add "Item1"MyList.Add "Item2"MyList.Add "Item3"MyList.Insert 2, "Inseted" ' Insert元素MyList.Insert 1, "Inseted another" ' Insert元素For i = 0 To 2arr.Add iNext'遍历ArrayListFor N = 0 To MyList.Count - 1 MsgBox MyList(N)Next'也可以用For Each遍历ArrayListFor Each I In MyList MsgBox INextEnd Sub通过下标修正元素

须要把稳的是,ArrayList下标,始终从0开始(即便我们通过Option Base 1设置下标从1开始),这点跟VBA内置的数组不一样。

Sub ArrayListExample()'Create new array list objectDim MyList As New ArrayList'Add items to listMyList.Add "Item1"MyList.Add "Item2"MyList.Add "Item3"'Change item 1 from ‘Item2’ to ‘Changed’MyList(1) = "Changed"'Iterate through array list to prove change workedFor Each I In MyList 'Display item name MsgBox INext IEnd Sub判断是否包含某个元素:Contains

ArrayList可以用Contains方法,判断是否包含某个元素,返回布尔值。

True:包含,False:不包含。

Sub testArrayList_Contains() Dim arr As New ArrayList ' 定义ArrayList ' 添加元素 For Each value In Array("hello", "world", "VBA", 1, 3, 5, True, False) arr.Add value Next ' 判断是否包含元素 Debug.Print arr.Contains("VBA") ' True Debug.Print arr.Contains("xxx") ' FalseEnd Sub元素查找:IndexOf和LastIndexOf

IndexOf和LastIndexOf都可以用于查找元素在ArrayList的位置。
不同的是,IndexOf用于正向查找,LastIndexOf反向查找(即从末了一个元素开始倒过来查找)。

ArrayList.IndexOf(查找值,从哪个下表开始),如果查找的值不存在,返回-1.

ArrayList.LastIndexOf(查找值)。
如果不存在,返回-1.

Sub testArrayList_IndexOf() Dim arr As New ArrayList ' 定义ArrayList ' 添加元素 For Each value In Array("hello", "world", "VBA", 1, 3, "world", True, False) arr.Add value Next ' 查找元素下标。
' 返回值的下标始终从0开始 Debug.Print arr.IndexOf("VBA", 0) ' 2 Debug.Print arr.IndexOf("xxx", 0) ' -1,查找的值不存在 Debug.Print arr.LastIndexOf("world") ' 5End Sub
删除元素:Remove,RemoveAt,RemoveRange

Remove(value):从ArrayList中删除给定的值。
只删除第一个找到的元素,有多个也值删除第一个。

RemoveAt(index):从ArrayList中,删除给定下标的值。

RemoveRange(index, count):从ArrayList中,从下标index开始,删除指定个数count的元素。

Sub testArrayList_Remove() Dim arr As New ArrayList ' 定义ArrayList ' 添加元素 For Each value In Array("hello", "world", "VBA", 1, 1, "world", "hello") arr.Add value Next ' 删除元素 arr.Remove "world" ' 只删除第一个找到的元素 arr.RemoveAt 0 ' 删除下标为0的元素 arr.RemoveRange 0, 2 ' 删除下标从0开始,删除2个元素End Sub元素反转:Reverse

顾名思义,将全体ArrayList中元素的顺序反转。

Sub testArrayList_Reverse() Dim arr As New ArrayList ' 定义ArrayList ' 添加元素. For Each value In Array("a", "work", "life", "balance") arr.Add value Next For Each value In arr Debug.Print value ' 这时候元素的顺序是,a, work, life, balance Next ' 元素顺序反转 arr.Reverse For Each value In arr Debug.Print value ' 这时候元素的顺序发生反转,balance, life, work, a NextEnd Sub元素排序:Sort

Sort可以对元素进行升序排序。

Sub testArrayList_Sort() Dim arr As New ArrayList ' 定义ArrayList ' 添加元素. For Each value In Array(1, 5, 2, 6, 3, 8) arr.Add value Next ' 元素升序排序 arr.Sort For Each value In arr Debug.Print value NextEnd Sub复制:Clone

Clone方法可以浅复制ArrayList。

Sub testArrayList_Clone() Dim arr As New ArrayList ' 定义ArrayList ' 添加元素. For Each value In Array(1, 5, 2, 6, 3, 8) arr.Add value Next ' ArrayList复制 Set arr2 = arr.CloneEnd Sub获取元素个数:Count

用Count方法,可以获取到ArrayList内元素的个数。

Sub testArrayList_Count() Dim arr As New ArrayList ' 定义ArrayList ' 添加元素. For Each value In Array(1, 5, 2, 6, 3, 8) arr.Add value Next Debug.Print arr.Count ' 6End Sub清空所有元素:Clear

Clear方法用于情形ArrayList所有元素。

Sub testArrayList_Clear() Dim arr As New ArrayList ' 定义ArrayList ' 添加元素. For Each value In Array(1, 5, 2, 6, 3, 8) arr.Add value Next arr.Clear Debug.Print arr.Count ' 0End Sub转换成VBA数组:ToArray

ToArray方法可以把ArrayList转成VBA的数组。

Sub testArrayList_ToArray() Dim arr As New ArrayList ' 定义ArrayList ' 添加元素. For Each value In Array(1, 5, 2, 6, 3, 8) arr.Add value Next arr2 = arr.ToArray For Each value In arr2 Debug.Print value Next End Sub

相关文章

介绍百度网盘,云端存储时代的创新先锋

随着互联网技术的飞速发展,云计算已经成为现代生活不可或缺的一部分。而在这其中,百度网盘作为国内领先的云存储服务提供商,以其卓越的性...

SEO优化 2025-01-03 阅读0 评论0

介绍监控屏蔽技术,守护个人隐私的利器

随着科技的发展,监控设备已经深入到我们生活的方方面面。在享受便利的隐私安全问题也日益凸显。如何有效屏蔽监控,保护个人隐私,成为人们...

SEO优化 2025-01-03 阅读0 评论0

介绍番号观看方法,轻松驾驭影视世界

随着互联网的普及,网络影视资源日益丰富,番号作为影视作品的标识码,已经成为广大观众了解、搜索和观看影视作品的重要途径。如何正确地使...

SEO优化 2025-01-03 阅读0 评论0

介绍盗微信号黑幕,网络安全的严峻挑战

在数字化时代,微信已成为人们生活中不可或缺的通讯工具。随着微信用户数量的激增,盗微信号的事件也日益增多。本文将深入剖析盗微信号的方...

SEO优化 2025-01-03 阅读0 评论0