首页 > 编程知识 正文

vba数组转置函数,vba字典多条件求和

时间:2023-05-03 07:48:56 阅读:16008 作者:3843

词典是VBA中的常用对象,可能需要将存储在词典对象中的数据转换为数组,然后进行进一步处理。 使用中经常出现数组下标越界等问题。 介绍词典到数组的转换。

示例代码如下:

subdemo(dimarr1、arr2、arr3setobjdic=createobject (scripting.dictionary ) ) For i=1 To 5 objDic(i ) ) ) )=i Next i Debug.Print ' items直接分配给数组。' arr1=objdic.itemscallgetarrbound (arr1) Debug.Print '数组的首次旋转位置: ' arr2=applicatation callgetarrbound (arr2) debug . setobjdic=nothingendsubsubgetarrbound (arr ) Dim intArrDim As Integer, nintarrdim=fngetarraydimension (arr ) Debug.Print '数组维: ' intarrdimforn=1tointarrdimdebug.print ' n '维下界:上界n ) next debug.print application.rept ) '=,20 ) endsubfunctionfngetARRaydimension ) arr ) asinction ionerrorresumenextfon

本地窗口包含以下图形:

【代码分析】

第三行代码声明创建词典对象。

第4-6行代码为词典对象赋值,共有五个元素。

第8行代码将自动对象的items集合代入arr1,在有即时窗口的情况下发现arr1是一维数组,其下标从0到4。 与即时窗口相对应的输出如下。

items直接赋值给数组。 数组维:1第一维下界:0,上界:4第11行代码将数组旋转一周。 此时生成的数组arr2为二维数组,对应即时窗口的输出如下所示。

数组第一次倒排:数组维:2第一维下界:1、上界:5第二维下界:1、上界:1第十四行代码将数组再次倒排。 此时生成的阵列arr3是一维阵列,并且对应于即时窗口的输出。 经过两次倒排后,数组返回一维数组,但数组的下一期和上界发生了变化,在代码中引用数组时必须注意下标范围。

数组的第二次倒排:数组维:1第一维下界:1,上界:5第18~26行代码用于GetArrBound过程中获取和输出数组各维的上界和下一期。

第18至26行代码是fnGetArrayDimension进程,用于获取数组中的维数。 有关代码的详细信息,请参阅《[如何获取数组的维数](https://blog.csdn.net/taller_2000/article/details/84868857)》。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。