于最近新增了许多资讯 转至本版方便查寻
※ [本文转录自 Visual_Basic 看板 #1OYh_fss ]
作者: waiter337 (给开司一罐苏格登) 看板: Visual_Basic
标题: [VBA ] 阵列贴上excel的方式(回楼上)
时间: Fri Jan 27 11:35:03 2017
这套方式也算拼拼凑凑出来
可能会有些微不正确
但如对于新手或许是个比较快速的一个范例
因为写阵列不难,但要把阵列贴上cell 实在很难>.<
以下为阵列贴上工作表储存格cell之办法
1.
(1维阵列,所有列贴上某起始格,自动调整大小,cell为向下汇入)
Sheets("sheet1").[A1].Resize(UBound(阵列名)) =Application.Transpose(阵列名)
假设阵列内的资料是
1
3
5
显示为
1
3
5
2.
(1维阵列,从某起始格,朝向右边贴上,自动调整大小,cell为向右汇入)
Sheets("工作表1").[A1].Resize(1,UBound(阵列名,1) +1) = 阵列名
假设阵列内的资料是
1
3
5
显示为
1 3 5
3.
(2维阵列,栏为不固定) #阵列设为0~最后一栏,将相同范围贴至储存格
Sheets("sh1").[A1].Resize(UBound(阵列名,1) +1,UBound(阵列名,2) +1) = 阵列名
假设阵列内的资料是
1 2
3 4
5 6
显示为
1 2
3 4
5 6
4.
(2维阵列,栏为固定) #阵列假设0~2列 为0~4栏,贴至储存格1~5栏
Sheets("sheet1").range("a1").Resize(UBound(阵列名)+1, 5) = 阵列名
假设阵列内的资料是
1 2 3 4 5
6 7 8 9 0
a b c d e
显示为
1 2 3 4 5
6 7 8 9 0
a b c d e
也可以写成
Sheets("sheet1").range("a1").Resize(3, 5) = 阵列名
[请注意以上阵列 UBound(阵列名)是否需要+1 ]
尤其resiz后面用的数字,"并不是"阵列的栏列,而是要贴上储存格的栏列,
因为阵列是从0开始算
储存格都用1开始算,请注意
另外也可以将阵列设为 redim ar(1 to 5)搭配储存格栏列号
或者一开始于最上方写入 Option base 1 将所有阵列索引值下限的默认值改成 1
这四条方法
我找到外国网站才补齐= =
为了这四行,我花了快20小时 XD
还有靠office板的s大大才得以学会
也欢迎大大一起揪错 感恩