我想创建一个函数,它接收两个参数来进行一些矩阵运算。我想做的是以下几点:
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。
那么,我的代码有什么问题?
答案 0 :(得分:2)
VBA中没有内置类型float
。对于单精度浮点数,请使用Single
,对于双精度浮点数,请使用Double
。
答案 1 :(得分:1)
我认为,在某种程度上,您的代码是“彻底改造”'标准函数(并且没有任何损害),A1中为1
,B1中为3
,C1中为5
:
{=MMULT(A1:C1,TRANSPOSE(A1:C1))}
返回35
。