Arrays VBA中单行上多个数组的声明
我浪费了两个小时的时间来声明一个数组。我现在知道如何避免这个问题,但我想知道这里出了什么问题。我又是VBA的新手,我想了解我在做什么,而不是只是做随机编辑,直到它工作。。。这就是我在这里做的 第一个代码是:Arrays VBA中单行上多个数组的声明,arrays,vba,Arrays,Vba,我浪费了两个小时的时间来声明一个数组。我现在知道如何避免这个问题,但我想知道这里出了什么问题。我又是VBA的新手,我想了解我在做什么,而不是只是做随机编辑,直到它工作。。。这就是我在这里做的 第一个代码是: Public Sub Main() Dim X(3) As Double Dim V(3) As Double Call SimpleFunc(X) Debug.Print "Finished!" End Sub Private Sub Func1(ByRe
Public Sub Main()
Dim X(3) As Double
Dim V(3) As Double
Call SimpleFunc(X)
Debug.Print "Finished!"
End Sub
Private Sub Func1(ByRef X() As Double)
X(1) = 0.1
X(2) = 0.2
X(3) = 0.3
End Sub
但第二段代码没有(编译时出错“类型不匹配:应为数组或用户定义类型”)。唯一的区别在于X和V的声明
Public Sub Main()
Dim X(3), V(3) As Double
Call SimpleFunc(X)
Debug.Print "Finished!"
End Sub
Private Sub Func1(ByRef X() As Double)
X(1) = 0.1
X(2) = 0.2
X(3) = 0.3
End Sub
为什么X在后面的代码中不是数组
谢谢大家 您必须同时指定这两种类型,从逻辑上讲,我以前认为它可以像您现有的那样工作,但事实并非如此 这样做:
Dim X(3) As Double, V(3) As Double
但好处是您不必对类型进行分组,您可以有如下功能:
Dim X as long, Y as Double, V as Variant, Z(3) as String
全部在一行上简而言之,如果坚持在一行上声明倍数,则需要为每个变量指定数据类型:
Dim X(3) As Double, V(3) As Double
如果未指定数据类型,VBA将假定该类型为Variant
。变体
可以是一个数组
,但不应使用数组表示法:
Dim V(3) As Double
Dim X
X = V ' X is now an array
哦,一个变种。。。但它是否仅适用于阵列?因为我在MicrosoftVisualBasic页面上发现了这一点:>>将a、b、c作为单体,将x、y作为双体,将I作为整数>'a、b和c都是单体;x和y都是双重的@Godzy:我想你是。这些例子可能是针对.NET的。你在检查MS站点时必须小心,否则很容易就会发送错误的文档。。。