12

我有一个工作表,其中我为某些单元格定义了名称。这些单元格将在函数中使用,我使用它们的名称来调用它们。

但是,当我使用 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

我该如何解决这个问题?

4

2 回答 2

18

如果你只是写min_w = L_W_1 * 0.868 * depth / 1000vba 认为L_W_1它是变量(类型为 value=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
于 2013-06-21T10:32:23.163 回答
7

您可以将它们放在括号中以将它们标记为范围:[Sum_Len_1].Value、[L_W_2].Value 和 [L_W_1].Value

于 2014-10-14T19:15:28.100 回答