【问题标题】:Understanding the 'x to y' in the VBA Dim myArray(x to y) statement [duplicate]了解 VBA Dim myArray(x to y) 语句中的“x 到 y”[重复]
【发布时间】:2013-10-31 01:13:20
【问题描述】:

我已经搜索了网络、Microsoft 的网站、vba 帮助,但找不到对这个暗淡语句中“0 到 10”部分含义的参考。

Dim myArray(0 to 10)

有人可以帮助澄清到底是怎么回事吗?我怀疑它与确定多维数组的尺寸有关,但我想了解幕后发生的事情,或者我是否正确。

编辑: 抱歉,我开始在重新标注尺寸的背景下考虑这个问题,这是我第一次看到示例的地方,但后来发现它也用于初始尺寸标注。

【问题讨论】:

  • @Okuma.Scott:链接的问题没有描述“0 到 10”。
  • @Walter Henze 我的错误。我也是在标记后第二次意识到这一点。真的希望有办法在第一分钟左右收回旗帜。很多人都同意元数据。
  • 我意识到我最初写这个问题的方式并没有明确我在问什么。我已经对其进行了编辑,以试图提供这种清晰度。对于我第一次尝试提出问题的可悲借口,我深表歉意。

标签: arrays vba


【解决方案1】:

此语句声明了一个名为 myArray 的空 variant 数组,该数组包含 11 个项目(0 到 10)。

它是一个变体,因为没有明确声明为任何其他类型。

【讨论】:

  • 声明后,您可以像这样使用变量:myArray(0)="hello!"myArray(10)=2.5。如果您使用小于 0 或大于 10 的索引,则会导致错误。如果您访问尚未初始化的元素(显式分配值),它将返回“nothing”。请注意,VBA 对数组的基数有点奇怪 - 在许多情况下它忽略了数组的下限...
  • 这与dim myArr(10)有何不同?
  • @Rob .. myArr(10) 只有 10 个元素 .. 0 到 9 ..
  • 请注意,它是一个变体数组,而不是变体数组。 msdn.microsoft.com/en-us/library/office/…
  • @matzone 不一定,这取决于您的 Option Base 设置,如果是 1 则您是正确的,myArr(10) 将只有 10 个元素,默认 Option Base 0 将导致 11。声明下限总是更好
【解决方案2】:

http://excelvbatutor.com/vba_chp21.htm

该网站对 VBA 中的数组有相当详细的解释。

简而言之,

Dim myArray(0 to 10) 正在创建一个索引为 0 到 10(即 11 个元素)的数组

对于你提到的关于重新调整的内容,你应该寻找 redim 来代替

【讨论】:

    猜你喜欢
    • 2022-06-10
    • 2012-10-14
    • 2018-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多