郑广学VSTO火箭速成班 VBAYYDS.COM

ArrayHelper 类

兼容VBA数组的增强模块,重点解决VBA中非0下标代码,最少代价移植到VB.NET使用
实现原有VBA非0下标数组无缝移植,不需要重新调整代码中的下标问题

Definition

命名空间: Excel880VSTO
程序集: Excel880VSTO (在 Excel880VSTO.dll 中) 版本:1.5.8.0 (1.5.8.0)
C#
public sealed class ArrayHelper
Inheritance
Object    ArrayHelper

方法

ArraySortOne(Object) 一维数组排序 默认升序 空值排前面
ArraySortOne(Object, ArrayHelperEnumSortType) 一维数组排序 支持升降序 SortASC升序,SortDESC降序
ArraySortOne(Object, Int32) 旧的参数写法,已废弃,请用新的枚举写法 一维数组排序 支持升降序 0升1降
ArraySortOne自定义 一维数组自定义排序 按给定的序列数组进行排序 不在序列中的元素按原位置往后移动
ArraySortTwo(Object, Int32, ArrayHelperEnumSortType) 二维数组排序 对指定关键字列排序
ArraySortTwo(Object, Int32, ArrayHelperEnumSortType, Int32, ArrayHelperEnumSortType) 二维数组排序 2列关键字 优先级从前往后
ArraySortTwo(Object, Int32, ArrayHelperEnumSortType, Int32, ArrayHelperEnumSortType, Int32, ArrayHelperEnumSortType) 二维数组排序 3列关键字 优先级从前往后
ArraySortTwo多列 二维数组多列排序 Dim crr = ArraySortTwo多列(arr, 0, 0, 1, 0, 2, 1)
ArraySortTwo自定义 二维数组自定义排序 对指定列 指定关键字序列数组排序 不在序列中的元素按原位置往后移动
ArrayVBA 对标vba中的 array(1,2,3)==>ArrayVBA(1,2,3) 主要方便转换vba代码
DimArray(Object, Object, Object) 一维数组定义,对标VBA中的Dim arr(1 to 10) ==>Dim arr(1,10)
DimArray(Object, Object, Object, Object) 定义数组 和VBA里一样可定义非零下标二维数组 为object(,)
DimArrayT(Object, Object, Object, Object) 定义二维数组 和VBA里一样可定义非零下标二维数组
对标Dim arr(1 to 10,1 to 2)==> DimArray(1,10,1,2)
Distinct 数组去重 默认按所有列 也可以设定指定的单列或者多列 arr.Distinct({1,3}) 按第1和第3列去重 无参数则所有列
Lbound  
ReDimArray(Object, Object, Object) 重定义一维数组 支持非0下标
ReDimArray(Object, Object, Object, Object, Object) 重定义数组不保留值 和VBA里一样重定义非零下标二维数组
ReDimArrayT(Object, Object, Object, Object, Object) 重定义数组不保留值 和VBA里一样重定义非零下标二维数组
ReDimArrayPreserve(Object, Object, Object) 重定义数组 保留源数据 行数可变 上下标可变
ReDimArrayPreserve(Object, Object, Object, Object, Object) 重定义数组保留值 和VBA里一样重定义非零下标二维数组
ReDimArrayPreserveT(Object, Object, Object, Object, Object) 重定义数组保留值 和VBA里一样重定义非零下标二维数组
Transpose2(Object) 数组转置函数,没有系统255字符的限制
只处理一维和二维数组 一维数组直接转为单列二维数组
Transpose2(Object) 数组转置函数,没有系统255字符的限制
只处理一维和二维数组 一维数组直接转为单列二维数组
Ubound  
去重 数组去重 默认按所有列 也可以设定指定的单列或者多列 arr.Distinct({1,3}) 按第1和第3列去重 无参数则所有列
数组切片(Object, Int32, Int32) 一维数组切片 从一维数组中指定行坐标开始截取指定行数的数组 成为一个新的一维数组
数组切片T(T, Int32, Int32, Int32, Int32) 二维数组切片函数,类似于工作表函数中的Offset,从数组中指定位置开始截取一个新的数组区域
行数和列数为0的时候代表从指定位置余下的整行或者整列 不能为负
数组转置 数组行列转置函数,没有系统Transpose的bug
只处理一维和二维数组 一维数组直接转为单列二维数组
单列二维数组转为单行二维数组

参见