Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3457|回复: 5

[已解决]改变二维数组维数,错在哪里?

[复制链接]
发表于 2012-11-29 08:51 | 显示全部楼层 |阅读模式
本帖最后由 dpdmlym 于 2012-11-29 09:08 编辑

Sub 增加数组维数()
    '我想把原数组(2行4列)扩充到3行4列,前三行要保留原来的数据
    Dim Myarr
    Myarr = Range("a1:d2")
    Myarr = Application.WorksheetFunction.Transpose(Myarr)
    ReDim Preserve Myarr(0 To 3, 0 To 2)    '为什么不行?应该如何
  1. '下标用错了,应该
  2. ReDim Preserve Myarr(1 To 4, 1 To 3)
复制代码
Myarr = Application.WorksheetFunction.Transpose(Myarr)

End Sub

最佳答案
2012-11-29 08:58
本帖最后由 zjdh 于 2012-11-29 09:05 编辑

Sub 增加数组维数()
    Dim Myarr
    Myarr = Range("a1:d2")
    Myarr = Application.WorksheetFunction.Transpose(Myarr)
    ReDim Preserve Myarr(1 To 4, 1 To 3)  
    Myarr = Application.WorksheetFunction.Transpose(Myarr)
End Sub
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-11-29 08:58 | 显示全部楼层    本楼为最佳答案   
本帖最后由 zjdh 于 2012-11-29 09:05 编辑

Sub 增加数组维数()
    Dim Myarr
    Myarr = Range("a1:d2")
    Myarr = Application.WorksheetFunction.Transpose(Myarr)
    ReDim Preserve Myarr(1 To 4, 1 To 3)  
    Myarr = Application.WorksheetFunction.Transpose(Myarr)
End Sub
回复

使用道具 举报

发表于 2012-11-29 09:04 | 显示全部楼层
如二楼所说,在使用ReDim Preserve重置数组大小时,只能对最后一维的数组大小进行调整,有时为了调整第一维的大小,先转置,再扩充,扩充后再转置回来
回复

使用道具 举报

 楼主| 发表于 2012-11-29 09:05 | 显示全部楼层
哈哈,知道错哪了
应该: ReDim Preserve Myarr(1 To 4, 1 To 3)
这样就行了
回复

使用道具 举报

发表于 2012-11-29 09:06 | 显示全部楼层
建议楼主多使用F1,如果查看一下ReDim Preserve的帮助,你就可以找到原因了
回复

使用道具 举报

 楼主| 发表于 2012-11-29 10:32 | 显示全部楼层
兰色幻想 发表于 2012-11-29 09:06
建议楼主多使用F1,如果查看一下ReDim Preserve的帮助,你就可以找到原因了


谢谢啦   兰色幻想
得到你回复,真是荣幸
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-26 19:13 , Processed in 0.308917 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表