从VBA脚本返回正确的值到Excel单元格

时间:2015-06-24 17:47:34

标签: excel vba excel-vba

我有一个在VBA模块中编写的方法

Public Function calcAscentTime()

IDepth = CInt(Sheets("Fundies").Range("B47"))
T = 0

T = T + 1   ' Add 1 minute for emergency
D = Math.Round((IDepth / 10) * 10) 'Round to Ceiling of nearest 10

half_depth = Math.Round(((D / 2) / 10) * 10, 0)  'Get where our first stop is
T = T + Math.Round((((D - half_depth) / 30) / 2) * 2) ' Ascend to first stop at 30ft/min

T = T + (half_depth / 10) ' 1 minute for every stop thereafter

这样做是从细胞B47中获取" Fundies"工作表,应该根据计算返回一个值。我将= calcAscentTime()输入到单元格B48中,期望获得值8(B47' s值为100),但得到的返回值为0.我做错了什么?

1 个答案:

答案 0 :(得分:0)

你的功能并没有返回任何东西。将函数名称分配给计算变量应返回预期结果(假设您拥有其他所有权限)。类似的东西:

Public Function calcAscentTime()

IDepth = CInt(Sheets("Fundies").Range("B47"))
T = 0

T = T + 1   ' Add 1 minute for emergency
D = Math.Round((IDepth / 10) * 10) 'Round to Ceiling of nearest 10

half_depth = Math.Round(((D / 2) / 10) * 10, 0)  'Get where our first stop is
T = T + Math.Round((((D - half_depth) / 30) / 2) * 2) ' Ascend to first stop at 30ft/min

T = T + (half_depth / 10) ' 1 minute for every stop thereafter
calcAscentTime = T
End Function

请记住,您应该将变量调暗到正确的类型,以避免编译器出现任何混淆/错误拼写。