首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将变量传递给双数组VBA?

如何将变量传递给双数组VBA?
EN

Stack Overflow用户
提问于 2018-08-21 20:41:28
回答 1查看 1.9K关注 0票数 1

我的想法是创建一个函数来传递双倍数组,如下所示:

代码语言:javascript
复制
Function pass(a() As Double, b() as double) As Boolean
Dim i As Integer, j As Integer
ReDim a(0 To UBound(b, 1), 0 To UBound(b, 2))
    For i = 0 To UBound(a, 1)
        For j = 0 To UBound(a, 2)
            a(i, j) = b(i, j)
        Next
    Next
End Function

这样人们就可以使用:

代码语言:javascript
复制
pass(a,b)

然后是a=b。

代码语言:javascript
复制
a=b

不起作用..(哦,天哪,我好怀念matlab。)

好了,回到问题上:

这对于两个双精度数组很有效,但是如果我得到一个变量,当我使用这个变量时,我可以得到一个变量,这不起作用。那么有没有一种将变量值传递给双数组的解决方案呢?数据的结构类似于双精度数组,但不是double()类型。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-22 03:51:47

为了解决这个问题,我将删除参数的类型。

代码语言:javascript
复制
Sub test()

Dim VarArry(0 To 4, 0 To 4) As Variant
Dim DblArry(0 To 4, 0 To 4) As Double
Dim VarAssing() As Variant
Dim DblAssing() As Double
Dim c As Boolean

VarArry(0, 1) = 34
DblArry(0, 1) = 34

c = pass(VarAssing, VarArry)
Debug.Print (TypeName(VarAssing))
Debug.Print (VarAssing(0, 1))

c = pass(VarAssing, DblArry)
Debug.Print (TypeName(VarAssing))
Debug.Print (VarAssing(0, 1))

c = pass(DblAssing, VarArry)
Debug.Print (TypeName(DblAssing))
Debug.Print (VarAssing(0, 1))

c = pass(DblAssing, DblArry)
Debug.Print (TypeName(DblAssing))
Debug.Print (VarAssing(0, 1))


End Sub

Function pass(a, b) As Boolean
Dim i As Integer, j As Integer
ReDim a(0 To UBound(b, 1), 0 To UBound(b, 2))
    For i = 0 To UBound(a, 1)
        For j = 0 To UBound(a, 2)
            a(i, j) = b(i, j)
        Next
    Next
End Function

输出如下所示

代码语言:javascript
复制
Variant()
 34 
Variant()
 34 
Double()
 34 
Double()
 34 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51948918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档