gpt4 book ai didi

arrays - 在VBA中声明数组变量

转载 作者:行者123 更新时间:2023-12-02 14:24:10 30 4
gpt4 key购买 nike

这三种样式声明数组变量有什么区别:

Dim MyArr1 As Variant
Dim MyArr2() As Variant
Dim MyArr3()

这三个都是动态变量吗?

我找不到比较这三者的文档链接。

更新。当执行这两个代码时,我真的看不出有什么区别:

代码1

Dim MyArr
MyArr = Range("a1:c10").Value

代码2

Dim MyArr() As Variant
MyArr = Range("a1:c10").Value

只要我们想将值分配给从某个范围读取的数组,我们是否以上面列出的三种方式中的任何一种来声明数组真的很重要吗?

MyArr=Range("A1:C10").Value

当上面的行被执行时,声明变量就在用值填充它之前发生吗?就像我们有一行隐藏的代码一样:

Dim MyArr(10,3) As Variant '10 rows, and 3 columns

那么当我们从某个范围读取数据时,MyArr 会变成静态数组变量吗?

最佳答案

Dim MyArr1 As Variant - MyArr1 是具有变体类型的变量
变体类型可以容纳任何数据类型或对象

下面两个是一回事。它的动态数组,其大小在设计时未知。

Dim MyArr2() As Variant
Dim MyArr3()
<小时/>
Sub ArayTest()

Dim MyArr1 As Variant
Dim MyArr2() As Variant
Dim MyArr3()

MyArr1 = 10
MyArr1 = #1/30/2019#

'--> You cannot directly assign value to array
'MyArr2 = 20
'MyArr3 = 30

'--> Use Redim to set the size of array

ReDim MyArr2(1)
MyArr2(0) = "abc"
MyArr2(1) = 1324

'--> variant can hold object
MyArr1 = Array(1, "s", #1/30/2019#)
End Sub
<小时/>

enter image description here

关于arrays - 在VBA中声明数组变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54437183/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com