打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
带您走进VBA数组5
1.一维数组读出来放在工作表里一行里
Option Explicit
Sub 一维数组读一行里()
Dim arr1
arr1 = Array("佛山小老鼠", "张三", "李四", "小妮子", "丫头")
Range("A1").Resize(1, UBound(arr1) + 1) = arr1
End Sub
Sub 清空()
Range("A1:E1") = ""
End Sub
2.一维数组读出来放在工作表里一列里
Sub 一维数组读一列里()
Dim arr1
arr1 = Array("佛山小老鼠", "张三", "李四", "小妮子", "丫头")
Range("A1").Resize(UBound(arr1) + 1, 1) = Application.WorksheetFunction.Transpose(arr1)
’由于一维数组读到单元格只能读成横向的,所以我们要通过转置函数Transpose,转成纵向的
End Sub
3.二维数组读出到工作表里
Sub 把二维数组读到单元格中()
Dim arr1
arr1 = Range("A1").CurrentRegion
[E1].Resize(UBound(arr1, 1), UBound(arr1, 2)) = arr1
'函数Ubound是取得数组arr1最大的索引号,
'UBound(arr1, 1)数组arr1最大的行索引号
'UBound(arr1, 2))最大的列索引号
End Sub
4.由于部分函数只支持一维数组,而我们单元格区域装入数组都是二维的,怎么办?
A.工作表里一行数据转一维
Sub 工作表里一行数据转一维1() '分开写的
Dim arr1, arr2, arr3
arr1 = Range("A1:E1")
arr2 = Application.WorksheetFunction.Transpose(arr1)
arr3 = Application.WorksheetFunction.Transpose(arr2)
End Sub
Sub 工作表里一行数据转一维2() '合起写的
Dim arr1, arr2
arr1 = Range("A1:E1")
arr2 = Application.WorksheetFunction.Transpose(Application.WorksheetFunction.Transpose(arr1))
'为什么要转二次呢,因为第一次是把1行5列的二维数组转置成5行1列的二维数组
第二次是把5行1列的二维数组转成一维数组
End Sub
Sub 工作表里一行数据转一维3() '简写的
Dim arr1, arr2
arr1 = Range("A1:E1")
arr2 = Application.Transpose(Application.Transpose(arr1))
'我们可以把二个WorksheetFunction省略
End Sub
B.一工作表里一列数据转一维
Sub 工作表里一列数据转一维()
Dim arr1, arr2
arr1 = Range("A1:A5")
arr2 = Application.WorksheetFunction.Transpose(arr1)
'如果是工作表里的一列装到数组里,只需转一次
End Sub
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
(18)数组,Split拆分,join合并,Filter搜索
Excel VBA 9.4 数组写入excel的方法和技巧
【源代码】一键导出CAD块属性到表格
vba将excel单元格区域转化为数组
vba数组函数与方法
“VBA”学习笔记
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服