User-Defined Type Not Defined函数中的错误,用于乘以两个矩阵

时间:2014-06-26 17:02:04

标签: excel vba function excel-vba matrix

我想创建一个函数,它接收两个参数来进行一些矩阵运算。我想做的是以下几点:

li(3,5)

然后:

[1 , 3 , 5 ] * [1
                3
                5]

所以结果是35。如您所见,我将值1添加到矩阵中,然后乘以其转置。

我的代码如下,但收到消息"User-Defined Type Not Defined error"

Public Function li(a As float, b As float) As Variant
Dim mat(1 To 1, 1 To 3) As Variant
Dim re As Variant


mat(1, 1) = 1
mat(1, 2) = a
mat(1, 3) = b

re = WorksheetFunction.MMult(mat, WorksheetFunction.Transpose(mat))

li = re




End Function

我使用Excel 2007。

那么,我的代码有什么问题?

2 个答案:

答案 0 :(得分:2)

VBA中没有内置类型float。对于单精度浮点数,请使用Single,对于双精度浮点数,请使用Double

答案 1 :(得分:1)

我认为,在某种程度上,您的代码是“彻底改造”'标准函数(并且没有任何损害),A1中为1,B1中为3,C1中为5

{=MMULT(A1:C1,TRANSPOSE(A1:C1))}  

返回35