【转载】Excel VBA乌博解释(arr,1),乌博(arr,2)
你说的调整大小(假定(arr,1),假定(arr,2)是什么意思
Resize()是一个扩展单元格地址区域的函数。它有两个参数,第一个是行扩展的数量,第二个是列扩展的数量。
Ubound (arr,1):arr数组中的最大行数;
Ubound (arr,2):arr数组中的最大列数。
这里,数组中的最大行数用作resize的行扩展,最大列数用作RESIZE的列扩展。
arr=范围((' a2:b ')范围(' a6555 ')。结束(xlUp)。行)
[a2]。Resize(UBound(arr),2)=arr '请详细解释一下这一行是什么意思。
将AB2列保存到arr中,然后将arr重写到这个区域中。
效果是如果有公式的话,就全没了,相当于粘贴值。
例1:
-
Sub iSub()
昏暗的arr
arr=范围(' a1:a7 ')
对于i=1至UBound(arr,1)
对于j=1至UBound(arr,2)
'处理的语句
然后
然后
末端接头
-
解释:
将arr赋给数组,即Range('a1:a7 ')的单元格区域内容,即一个有7行1列的区域。
等效:首先定义数组arr(1到7,1到1),然后分配内容。
使用UBound(arrayname[,dimension])函数获取指定维度的上限:
UBound(arr,1)得到arr的第一维的上限:7。
UBound(arr,2)得到arr的第二维的上限:1。
用两个for循环数组中的每个元素。
例2:
两列子数据查找相同的项数组方法()
Dim arr1、arr2、arr3()
Arr1=范围(' A1:A13 ')'第一列数据范围
Arr2=范围(' B1:B13 ')'第二列数据范围
对于i=1至UBound(arr1)
对于j=1至UBound(arr2)
如果arr1(i,1)=arr2(j,1),那么
如果InStr(Join(arr3,','),arr1(i,1))=0那么
n=n 1
ReDim保留arr3(1至n)
arr3(n)=arr1(i,1)
退出
如果…就会结束
如果…就会结束
然后
然后
范围(' d1 ')。调整大小(ubound (arr3),1)=工作表函数。转置(arr 3)‘相同的项目被放置在单元D1中。
末端接头
两列子数据找到相同的字典方法()
Arr1=范围(' A1:A13 ')'第一列数据范围
Arr2=范围(' B1:B13 ')'第二列数据范围
设置d=CreateObject('脚本。词典')
对于i=1至UBound(arr1)
d(arr1(i,1))=0
然后
对于j=1至UBound(arr2)
如果d .存在(arr2(j,1)),那么d(arr2(j,1))=1
然后
对于每个d1进制键
如果d(d1)=0,则移除d(d1)
然后
范围(' f1 ')。resize (d.count,1)=工作表函数。移调(d . key)'相同的项目被放置在单元格F1中。
末端接头
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/88687.html