use*_*446 4 vba function named-ranges
我有一个工作表,我已经为某些单元格定义了名称.这些单元格将在函数中使用,我使用它们的名称来调用它们.
但是,当我用Excel调用函数时,我得到0作为函数的返回值,好像这些名称没有链接或者值为0.
以下是我写的代码."Sum_Len_1","L_W_2"和"L_W_1"是我给源单元格的名称.
Function min_w(depth)
If depth < Sum_Len_1 Then
min_w = L_W_1 * 0.868 * depth / 1000
Else
min_w = L_W_1 * 0.868 * Sum_Len_1 / 1000 + L_W_2 * 0.868 * (depth - Sum_Len_1) / 1000
End If
End Function
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
如果你只是写min_w = L_W_1 * 0.868 * depth / 1000vba认为L_W_1它是变量(类型变量值为0).你必须这样做Range("L_W_1").Value才能引用命名的单元格.
如果您将其更改为:
Function min_w(depth As Long)
If depth < Range("SUM_LEN_1").Value Then
min_w = Range("L_W_1").Value * 0.868 * depth / 1000
Else
min_w = Range("L_W_1").Value * 0.868 * Range("SUM_LEN_1").Value / 1000 + Range("L_W_2").Value * 0.868 * (depth - Range("SUM_LEN_1").Value) / 1000
End If
End Function
Run Code Online (Sandbox Code Playgroud)