我写了一个名为myaverage的用户定义函数,它计算了3个数字的加权平均值:
Function myaverage(x, y, z) As Double
Dim a As Single
Dim x As Double
Dim y As Double
Dim z As Double
a = 0.4 * x + 0.5 * y + 0.1 * z
myaverage = a
End Function
但如果我输入=myaverage(A1:A3)
,我就看不到结果了。
答案 0 :(得分:1)
将您的功能简化为以下内容:
= myaverage(A1, B1, C1)
在Excel单元格中,使用:
{{1}}
答案 1 :(得分:0)
你有双重声明。我的意思是,Public Function myaverage(x As Double, y As Double, z As Double) As Double
myaverage = 0.4 * x + 0.5 * y + 0.1 * z
End Function
已在签名中声明,并且您在函数体中重新声明了它。所以这将有效:
characters
不要忘记该功能必须放在模块中(例如Module1)。请参阅第2步 in this tutorial。
如果您更改了代码,请务必使用菜单调试>重新测试您的语言错误功能。的编译即可。如果显示错误,请修复它们。
答案 2 :(得分:0)
如果要使用范围CREATE TABLE #Tbl1
(
ID int,
Name VARCHAR(50)
)
CREATE TABLE #Tbl2
(
ID int,
SearchTerm Varchar(50)
)
INSERT INTO #Tbl2
VALUES (1, 'LIKE'), (2, '=')
INSERT INTO #Tbl1
VALUES (1, 'F'), (2, 'Fred'), (3, 'Fred Astaire'),(4, 'Simon Says')
DECLARE @keyword varchar(50) = 'Fred'
SELECT t1.*, t2.ID
FROM #Tbl1 t1
INNER JOIN #Tbl2 t2 ON t2.SearchTerm = 'LIKE'
WHERE Name Like '%' + @keyword + '%'
UNION ALL
SELECT t1.*, t2.ID
FROM #Tbl1 t1
INNER JOIN #Tbl2 t2 ON t2.SearchTerm = '='
WHERE Name = @keyword
ORDER BY t2.ID
作为输入参数,则必须相应地编写UDF:
A1:C1