4 vba
=Test2(5)将代码放入模块后键入Excel.为什么这会给我一个Byref argument type mismatch错误?
如果在一开始Test2我做一行来创建我的数组:
Dim X1(5), X2(5) As Double那么它会起作用.但是当我b从函数的参数列表中使用时,我必须ReDim(因为它b是一个变量,而不是常量),然后导致错误.
Function Test1(a As Double)
Test1 = a * 2
End Function
Function Test2(b As Integer)
Dim X1(), X2() As Double
ReDim X1(b), X2(b) As Double
Dim i As Integer
For i = 0 To b
X1(i) = i
X2(i) = Test1(X1(i))
Next i
Test2 = X2(1)
End Function
Run Code Online (Sandbox Code Playgroud)
Ale*_* K. 12
这个:
Dim X1(), X2() As Double
Run Code Online (Sandbox Code Playgroud)
只声明X2()为double,X1()将存储b(整数)的类型而不是b转换为double(因此阻止传递As Double).
要使它们都加倍,你必须重复类型声明;
Dim X1() As Double, X2() As Double
ReDim X1(b), X2(b)
Run Code Online (Sandbox Code Playgroud)
这将意味着传递正确的double类型 Test1
| 归档时间: |
|
| 查看次数: |
15013 次 |
| 最近记录: |