打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
面向VBA一维数组的实用自定义函数
Private MyUDF As New UDF.ArrayConversion Sub 是否包含某元素() Dim Array1(2 To 5) As String Array1(2) = 'Word' Array1(3) = 'Excel' Array1(4) = 'Outlook' Array1(5) = 'Access' Debug.Print MyUDF.Contains(Array1, 'Excel') '打印结果为True End Sub Sub 倒序() Dim Array1(2 To 5) As String Array1(2) = 'Word' Array1(3) = 'Excel' Array1(4) = 'Outlook' Array1(5) = 'Access' Dim Array2 As Variant Array2 = MyUDF.Reverse(Array1) '倒序的结果返回给Array2 Debug.Print Join(Array2, '/') '打印结果为Access/Outlook/Excel/Word MyUDF.ReverseSelf Array1 '直接对Array1进行倒序 Debug.Print Join(Array1, '/') '打印结果为Access/Outlook/Excel/Word End Sub Sub 去重() Dim Array1(2 To 6) As Integer Array1(2) = 22 Array1(3) = 33 Array1(4) = 22 Array1(5) = 44 Array1(6) = 33 Dim Array2 As Variant Array2 = MyUDF.Distinct(Array1) Debug.Print Join(Array2, '/') '打印结果为22/33/44 End Sub Sub 连接数组() Dim Array1(2 To 5) As String Array1(2) = 'Word' Array1(3) = 'Excel' Array1(4) = 'Outlook' Array1(5) = 'Access' Dim Array2 As Variant Array2 = MyUDF.JoinArray(Array1, Array(1, 2, 3), Array(True, False)) Debug.Print Join(Array2, '/') '打印结果为Word/Excel/Outlook/Access/1/2/3/True/False End Sub Sub 排序() Dim Array1(2 To 5) As String Array1(2) = 'Word' Array1(3) = 'Excel' Array1(4) = 'Outlook' Array1(5) = 'Access' Dim Array2 As Variant Array2 = MyUDF.Sort(Array1) Debug.Print Join(Array2, '/') '打印结果为Access/Excel/Outlook/Word MyUDF.SortSelf Array1 '对Array1自身升序 MyUDF.ReverseSelf Array1 '对Array1自身倒序 Debug.Print Join(Array1, '/') '打印结果为Word/Outlook/Excel/Access End Sub Sub 检索元素位置() Dim Array1(2 To 6) As String Array1(2) = 'Word' Array1(3) = 'Excel' Array1(4) = 'Outlook' Array1(5) = 'Access' Array1(6) = 'Excel' Debug.Print MyUDF.IndexOf(Array1, 'Outlook') '结果:4 Debug.Print MyUDF.IndexOf(Array1, 'outlook') '结果:-1 Debug.Print MyUDF.LastIndexOf(Array1, 'Excel') '结果:6 End Sub Sub 指定位置插入另一数组() Dim A(2 To 6) As Integer A(2) = 22 A(3) = 33 A(4) = 22 A(5) = 44 A(6) = 33 Dim B(-3 To -1) As String B(-3) = 'Word' B(-2) = 'Excel' B(-1) = 'Outlook' Dim Array3 As Variant Array3 = MyUDF.InsertRange(A, 4, B) Debug.Print Join(Array3, '/') '打印结果为22/33/Word/Excel/Outlook/22/44/33 End Sub Sub 删除连续多个元素() Dim Array1(2 To 6) As String Array1(2) = 'Word' Array1(3) = 'Excel' Array1(4) = 'Outlook' Array1(5) = 'Access' Array1(6) = 'Excel' Dim Array2 As Variant Array2 = MyUDF.RemoveRange(Array1, 3, 2) Debug.Print Join(Array2, '/') '打印结果为Word/Access/Excel End Sub Sub 部分元素构成新数组() Dim Array1(2 To 6) As String Array1(2) = 'Word' Array1(3) = 'Excel' Array1(4) = 'Outlook' Array1(5) = 'Access' Array1(6) = 'Excel' Dim Array2 As Variant Array2 = MyUDF.GetRange(Array1, 3, 3) Debug.Print Join(Array2, '/') '打印结果为Excel/Outlook/Access End Sub Sub 用另一数组覆盖一部分元素() Dim Array1(2 To 6) As Integer Array1(2) = 2 Array1(3) = 3 Array1(4) = 4 Array1(5) = 5 Array1(6) = 6 Dim Array2(2) As String Array2(0) = 'Word' Array2(1) = 'Excel' Array2(2) = 'Outlook' Dim Array3 As Variant Array3 = MyUDF.SetRange(Array1, 3, Array2) Debug.Print Join(Array3, '/') '打印结果为2/Word/Excel/Outlook/6 End Sub
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【原创】VBA学习笔记(13)VBA的数组 array
Vba遍历数组
Excel VBA在EXCEL中调用OUTLOOK发送邮件
【原创】VBA学习笔记(12)VBA的数组 array
VBA JOIN函数详解
VBA 数组
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服