VBA数组学习笔记.docx

VBA数组学习笔记.docx

ID:57609976

大小:16.74 KB

页数:10页

时间:2020-08-28

VBA数组学习笔记.docx_第1页
VBA数组学习笔记.docx_第2页
VBA数组学习笔记.docx_第3页
VBA数组学习笔记.docx_第4页
VBA数组学习笔记.docx_第5页
资源描述:

《VBA数组学习笔记.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、[分享]VBA数组学习笔记VBA数组学习笔记常常在论坛看到很多VBA高手运用数组解决各种问题,速度快,代码简洁,很是羡慕,所以逐渐收集了一些资料,与大家分享,也请多多指教。在此,也向高手们致以谢意。一、数组的分类按元素数目分:元素数目大小固定的数组和元素数目大小不固定的动态数组。按维数分:一维数组、多维数组。Arr(1to12)、Arr1(0to24)----一维固定数组;Arr2(1to5,1to8)----二维固定数组;Arr3(5to10,6to12,1to100)----三维固定数组。动态数组DimArr2()

2、,r%r=r+1ReDimPreserveArr2(1Tor)―――动态数组;可以重新声明(只有最后一维的数目才能重新声明);用了关键字Preserve可确保原来包含数据的数组中的任何数据都不会丢失二、数组的赋值2.1,单元格区域保存到数组arr=[e22:i24]arr=Range(“e22:i24”)2.2,Array函数myArray=Array("AAA","BBB",200,500,"2006-7-12")如果代码头没有OptionBase1的语句,则数组myArray的上限为4,下限为0。即下限LBound

3、(myArr)=0,上限UBound(myArr)=4二维数组的第一维的上限:UBound(Arr,1)二维数组的第二维的上限:UBound(Arr,2)多维数组上限的求法一样。2.3,把单元格区域公式赋给数组如果a5=B4+1arr=[a4:c8].Formula'将单元格绝对引用公式保存到数组[e4:g8]=arr此时e5中的公式也=B4+1;如果将单元格相对引用公式保存到数组arr=[a4:c8].FormulaR1C1如果a5=B4+1[e4:g8]=arr此时e5中的公式就=E4+1;三、数组的处理3.1,数

4、组里的最大值和最小值最大值aa=Application.WorksheetFunction.Max(Arr)aa=Application.WorksheetFunction.Large(Arr,1)最小值aa=Application.WorksheetFunction.Min(Arr)aa=Application.WorksheetFunction.Small(Arr,1)3.2,数组里搜索Temp=Filter(Arr,xm(i))'搜索数组Subyy()DimArr(),aa$,x%aa="asssfffssssa

5、aasss":bb="s"Forx=1ToLen(aa)ReDimPreserveArr(1Tox)Arr(x)=Mid(aa,x,1)Nextxtemp=Filter(Arr,bb)cc=UBound(temp)+1‘cc=”s”的个数EndSub用于对字符串数组进行搜索,得到一个新的数组temp,缺点:只告诉你某元素是否存在于数组中,而不知道其具体位置;数组精确搜索:SubFilterExactMatch()'该函数在一个字符串数组中搜索那些'与搜索字符串完全匹配的元素。DimastrFilter()AsStrin

6、gDimastrTemp()AsStringDimlngUpperAsLongDimlngLowerAsLongDimlngIndexAsLongDimlngCountAsLongastrItems=Array("a","sas","s","Sas","s","f","f","f","f","sas","s","sas","a","a","Sas","s","s")strSearch="Sas"'为搜索字符串而过滤数组。astrFilter=Filter(astrItems,strSearch)'存储结果数组的上限和下

7、限。lngUpper=UBound(astrFilter)lngLower=LBound(astrFilter)'将临时数组调整到相同大小。ReDimastrTemp(lngLowerTolngUpper)'在经过滤的数组的每个元素中循环。ForlngIndex=lngLowerTolngUpper'检查该元素是否与搜索字符串完全匹配。IfastrFilter(lngIndex)=strSearchThen'在另一个数组中存储完全匹配的元素。astrTemp(lngCount)=strSearchlngCount=ln

8、gCount+1EndIfNextlngIndex'重新调整包含完全匹配的元素的数组的大小。ReDimPreserveastrTemp(lngLowerTolngCount-1)'返回包含完全匹配的元素的数组。[a5].Resize(1,UBound(astrTemp)+1)=Application.Transpose(astrT

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。