ReDim 下标超出范围 (VBA)
您能否向我解释一下为什么这个简单的 VBA 代码在最后一行失败(“下标超出范围”):
Dim test() As Variant
ReDim test(0, 1)
test(0,0) = "key"
test(0,1) = 1
ReDim Preserve test(1, 1)
Could you please explain to me why this simple VBA code fails at the last line ("Subscript out of Range"):
Dim test() As Variant
ReDim test(0, 1)
test(0,0) = "key"
test(0,1) = 1
ReDim Preserve test(1, 1)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用保留调整大小。如果使用 Preserve,则只能调整数组最后一个维度的大小,并且对于每个其他维度,您必须指定其在现有数组中已有的相同边界。
例如,如果您的数组只有一个维度,您可以调整该维度的大小,但仍保留数组的所有内容,因为您正在更改最后一个也是唯一的维度。但是,如果您的数组有两个或多个维度,则在使用 Preserve 时只能更改最后一个维度的大小。
Resizing with Preserve. If you use Preserve, you can resize only the last dimension of the array, and for every other dimension you must specify the same bound it already has in the existing array.
For example, if your array has only one dimension, you can resize that dimension and still preserve all the contents of the array, because you are changing the last and only dimension. However, if your array has two or more dimensions, you can change the size of only the last dimension if you use Preserve.