Vba 如何计算函数的返回百分比?

Vba 如何计算函数的返回百分比?,vba,excel,Vba,Excel,我想创建一个以百分比形式返回数字的函数 例如: Function variation (fv as long, pv as long) as long variation = (fv/pv) - 1 End Function 我想知道我是否可以以百分比(0,00%)的形式返回值,我已经尝试了这两种方法,但没有成功 variation.Style = "0,##%" 及 long只能存储整数。将返回设置为双精度以存储百分比 Function variation(fv As Long,

我想创建一个以百分比形式返回数字的函数

例如:

Function variation (fv as long, pv as long) as long
    variation = (fv/pv) - 1
End Function
我想知道我是否可以以百分比(0,00%)的形式返回值,我已经尝试了这两种方法,但没有成功

variation.Style = "0,##%"


long只能存储整数。将返回设置为双精度以存储百分比

Function variation(fv As Long, pv As Long) As Double
    variation = (fv / pv) - 1
End Function
这将返回一个在单元格中使用的正确值

如果要创建带有百分号的字符串输出以用作显示,则只需按如下方式附加它:

Function variation(fv As Long, pv As Long) As String
    variation = (fv / pv) - 1 & "%"
End Function

long只能存储整数。将返回设置为双精度以存储百分比

Function variation(fv As Long, pv As Long) As Double
    variation = (fv / pv) - 1
End Function
这将返回一个在单元格中使用的正确值

如果要创建带有百分号的字符串输出以用作显示,则只需按如下方式附加它:

Function variation(fv As Long, pv As Long) As String
    variation = (fv / pv) - 1 & "%"
End Function

您似乎混淆了数字的值以及该数字在单元格中的格式。只需返回一个介于0和1之间的值,并让用户根据需要将其格式化为%。类型应该是双精度的,而不是长的。如果你想要一个在0-100范围内的数字,将结果乘以100。如果您确实希望以某种格式返回,则返回类型应为
String
,而不是
Long
Double
。但是--字符串在进一步计算中不如数字有用,所以我认为这不是一个好主意。或者,如果这是一个单元格,返回一个双精度格式的单元格。数字是一个数字,它没有“格式”。你的问题有点像“我想返回两个整数的最小公倍数,但我希望它是罗马数字,尽管我不希望它是字符串,我希望它是数字“。您似乎混淆了数字的值以及该数字在单元格中的格式。只需返回一个介于0和1之间的值,并让用户根据需要将其格式化为%。类型应该是双精度的,而不是长的。如果你想要一个在0-100范围内的数字,将结果乘以100。如果您确实希望以某种格式返回,则返回类型应为
String
,而不是
Long
Double
。但是--字符串在进一步计算中不如数字有用,所以我认为这不是一个好主意。或者,如果这是一个单元格,返回一个双精度格式的单元格。数字是一个数字,它没有“格式”。你的问题有点像“我想返回两个整数的最小公倍数,但我希望它是罗马数字,尽管我不希望它是字符串,我希望它是数字“。谢谢你的回答,但最终的结果必须是一个数字,以便进一步计算。@Vinicius选择double选项。这会满足你的需要。谢谢你的回答,但最终的结果必须是一个数字,以便进一步计算。@Vinicius选择双倍选项。那会满足你的需要。