VBA数组应用基础.ppt

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VBA数组应用基础

VBA数组应用基础 1. 数组的声明 Dim arr ‘声明Variant变量 Dim arr As Variant ‘与上句相同 Dim arr(1 to 10) ‘声明一个一维数组 Dim arr(1 to 10, 1 to 3) ‘声明二维数组 Dim arr() ‘声明动态数组 ReDim arr(1 to k) ‘动态数组再声明 Dim arr(-19 to 8) ‘下标可以为负值 Dim arr(-19 to 8, 2 to 5) ‘下标可以变动 2. 把单元格数据装入内存 Arr=Range(“A9:C100”) Arr=Application.Transpose(Range(“A1:A100”) Range(“A1:I1”)=Application.Transpose(arr) Range(“A1:A9”)=Application.Transpose(arr) 3. 函数LBound(arr)和UBound(arr) Dir arr(-19 to 8, 2 to 5) LBound(arr) ‘返回-19 UBound(arr) ‘返回8 UBound(arr,1) ‘返回8 LBound(arr,2) ‘返回2 UBound(arr,2) ‘返回5 Arr=Sheets(1).UsedRange UBound(arr,1) ‘返回其行数 UBound(arr,2) ‘返回其列数 4. 使用Array函数创建常量数组 Array(“A”,1,“B”) [{A,1,C}] Array(Array(a, 10), Array(b, 20), Array(c, 30)) [{a,10;b,20;c,30}] arr=Array(10,20,30,40) ‘可以简化负值操作 ?arr = [{a,10;b,20;c,30}] MsgBox Application.VLookup(b, arr, 2, 0)?? 调用vlookup时可以作为第二个参数 5. 数组的合并与拆分 Join and Split Split(字符串,分隔符) 拆分字符串 Join(数组,“分隔符”)?? 用分隔连接数组元素一字符串 Dim arr, str As String Str=A-REW-E-RWC-2-RWC Arr=Split(str,“-”) ‘其LBound(arr)为0 Str=Join(arr,“,”) ‘str=“A,REW,E,RWC,2,RWC” 6. Filter函数实现数组筛选 Filter(数组, 筛选的字符,??是否包含) 示例说明 Sub DD() arr = Array(“ABC”, “A”, “D”, “CA”, “ER”) arr1 = VBA.Filter(arr, “A”, True) ‘筛选所有含A的数值组成一个新数组 arr2 = VBA.Filter(arr, “A”, False) ’筛选所有不含A的数值组成一个新数组 MsgBox Join(arr2, “,”) ‘查看筛选的结果 End Sub 7. 使用Excel工作表函数操作数组(1) arr = Array(1, 35, 4, 13) MsgBox Application.Max(arr)??‘最大值 MsgBox Application.Min(arr)???‘最小值 MsgBox Application.Large(arr, 2)?‘第2大值 MsgBox Application.Small(arr, 2)??‘第2小值 MsgBox Application.Sum(arr)? ?‘对数组进行求和 arr = Array(1, 35, a, 4, 13, b) MsgBox Application.Count(arr)?? 返回数字的个数4 MsgBox Application.CountA(arr)? ‘返回数组文本和数字的总个数 8. 数组的查询和拆分 arr = Array(1, 35, 4, 13) MsgBox Application.Match(4, arr, 0)??‘查询数值4在数组Arr中的位置 Application.Index(数组, , 列数) arr2 = Range(A1:B4) ‘把单元格区域A1:B4的值装入数组arr2?????? arr3 = Application.Index(arr2, , 2)??‘把数组第2列拆分出来装入新数组arr3中,新数组为二维数组?????? MsgBox arr3(2, 1)??取出新数组第2行的值 9. 数组维数的转换 arr = Array(1, 35, a, 4, 13, b) arr1 =

文档评论(0)

yaobanwd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档