如何将范围值转换为双精度值(VBA)
所以我想做一个函数,在单元格中取一个值来进行一些计算,但是每当我试图从单元格中获取值而不是硬编码时,我就会得到一个#值运行函数时出错。然而,当值被硬编码时,这并没有发生 我认为这是因为Range.Value返回一个变量,但我不知道如何将数据转换为double以便函数正常工作如何将范围值转换为双精度值(VBA),vba,excel,excel-2013,Vba,Excel,Excel 2013,所以我想做一个函数,在单元格中取一个值来进行一些计算,但是每当我试图从单元格中获取值而不是硬编码时,我就会得到一个#值运行函数时出错。然而,当值被硬编码时,这并没有发生 我认为这是因为Range.Value返回一个变量,但我不知道如何将数据转换为double以便函数正常工作 Function IfMissionarySupplies(Missionary_Type As String) As Double Wb = ThisWorkbook 'Wb is a global variable. D
Function IfMissionarySupplies(Missionary_Type As String) As Double
Wb = ThisWorkbook 'Wb is a global variable.
Dim Elder_Supplies, Sister_Supplies As Double
Elder_Supplies = Workbooks(Wb).Worksheets("Control Variables").Range("C11").Value
Sister_Supplies = Workbooks(Wb).Worksheets("Control Variables").Range("C14").Value
If Missionary_Type = "Sisters" Then
IfMissionarySupplies = Sister_Supplies
Exit Function
ElseIf Missionary_Type = "Elders" Then
IfMissionarySupplies = Elder_Supplies
End If
End Function
我在互联网上搜索了一遍又一遍,但没有结果。我也是VBA新手,所以我可能忽略了一些对更有经验的VBA开发人员来说显而易见的事情
谢谢 我将以下内容放入标准模块中:
Function IfMissionarySupplies(Missionary_Type As String) As Double
Wb = ThisWorkbook.Name 'Wb is a global variable.
Dim Elder_Supplies, Sister_Supplies As Double
Elder_Supplies = Workbooks(Wb).Worksheets("Control Variables").Range("C11").Value
Sister_Supplies = Workbooks(Wb).Worksheets("Control Variables").Range("C14").Value
If Missionary_Type = "Sisters" Then
IfMissionarySupplies = Sister_Supplies
Exit Function
ElseIf Missionary_Type = "Elders" Then
IfMissionarySupplies = Elder_Supplies
End If
End Function
并按如下方式设置工作表:
因此,上面的UDF版本看起来确实有效 Elder_Supplies隐式键入为变量。改为使用Dim Elder_Supplies作为Double。这是一个Double,因为Elder_Supplies和Sister_Supplies都声明为Double,请检查第三行。这些范围中的值是什么,在UDF中没有定义C11和C14Missional_Type。它们是数字,但格式为货币,但我不知道这是否有区别。