Excel精英培训网

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

[已解决]关于数组

[复制链接]
发表于 2009-12-14 15:08 | 显示全部楼层 |阅读模式


Option Base 0
Sub test()
    Dim ArrData As Variant
    Dim Arr As Variant
    ArrData = Array(1, 2, 3)
    Arr = ArrData
    Stop
End Sub

如上,ArrData这个时候下标最小为0,这样赋值给Arr的时候,Arr下标也会为0,我应该怎么定义这个Arr,在不用循环的情况下,进行怎样的处理,可以使Arr最小下标为1,且结果为:

Arr(1)=1,Arr(2)=2,Arr(3)=3

最佳答案
2009-12-15 08:45
Option Base 0
Sub test()
    Dim ArrData As Variant
    Dim Arr As Variant
    ArrData = Array(1, 2, 3)
    Arr = ArrData
    ReDim Preserve Arr(1 To UBound(Arr) + 1)
    Stop
End Sub
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2009-12-14 15:10 | 显示全部楼层

前提是ArrData结构不变.也就是ArrData实际上是一个已经固定了的数组.
回复

使用道具 举报

 楼主| 发表于 2009-12-14 15:24 | 显示全部楼层

[em04][em04][em04]
[此贴子已经被作者于2009-12-14 15:24:43编辑过]
回复

使用道具 举报

 楼主| 发表于 2009-12-14 15:37 | 显示全部楼层

没有人回答么?

实际上这样的问题感觉挺需要解决的呀

比如数组和字典一起用的时候

把字典直接赋值给数组,就只能最小下标是0而不能是1,我习惯的最小下标是1,要把它转化,用循环吧,又觉得太奢侈..

不知道有没有更简单的方法.

回复

使用道具 举报

发表于 2009-12-14 15:42 | 显示全部楼层

Option Base 1
Sub test()
    Dim ArrData As Variant
    Dim Arr As Variant
    ArrData = Array(1, 2, 3)
    Arr = ArrData
    Stop
End Sub
回复

使用道具 举报

发表于 2009-12-14 15:49 | 显示全部楼层

楼上正解
回复

使用道具 举报

发表于 2009-12-14 15:51 | 显示全部楼层

DJ, 你好,哈哈

将Option Base 0 改 Option Base 1 不算么?

回复

使用道具 举报

发表于 2009-12-14 15:53 | 显示全部楼层

这可能很难吧,字典是这样,Split好象也是这样。

你要统一也只能统一成option base 0(C中好象数组全部从0开始,没得选择)

你不改也好象没什么关系,到时记得减1便行了。

回复

使用道具 举报

 楼主| 发表于 2009-12-14 16:25 | 显示全部楼层

回答上面,改了不算.我加上这句就是为了限制不能更改.[em04]
回复

使用道具 举报

 楼主| 发表于 2009-12-14 16:28 | 显示全部楼层

QUOTE:
以下是引用吕?布在2009-12-14 15:53:00的发言:

这可能很难吧,字典是这样,Split好象也是这样。

你要统一也只能统一成option base 0(C中好象数组全部从0开始,没得选择)

你不改也好象没什么关系,到时记得减1便行了。

对啊,我就是在字典转数组的过程中遇到这样的问题的.

option base 1对字典好像无效.

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-7 01:45 , Processed in 0.530088 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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