2013-06-21 50 views
1

使用命名的单元格我有,我已经为特定的细胞定义名称的工作表。这些单元格将在函数中使用,我用他们的名字给他们打电话。在VBA函数

不过,我得到0,当我把它用Excel,仿佛姓名没有连接或有一个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 

我该如何解决问题?

+0

你能给哪些值深度的例子,L_W_1,L_W_2和Sum_Len_1可以有? – MiVoth

+0

L_W_1 = 105 L_W_2 = 96 Sum_Len_1 = 37 – user2453446

回答

5

如果你只是写min_w = L_W_1 * 0.868 * depth/1000 vba认为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 
+1

谢谢这个伟大的工程! – user2453446

1

你可以把他们在括号将它们标记为一个范围: [Sum_Len_1] .value的,[L_W_2] .value的和[L_W_1] .value的