用户定义types未定义函数中的两个matrix相乘的错误

我想创build一个接收两个参数来进行matrix运算的函数。 我想要做的是以下几点:

li(3,5) 

然后:

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

所以结果是35 。 如你所见,我把1的值加到matrix上,然后乘以它的转置。

我的代码是以下,但我收到消息"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。

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

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

我认为在一定程度上你的代码是“重塑”标准function(在这方面没有任何伤害),A1中有1 3 ,B1中有1 5 ,C1中有5

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

返回35