2017-02-03 193 views
0

我想創建一個返回百分比形式的數字的函數。如何以百分比返回函數?

例子:

Function variation (fv as long, pv as long) as long 
    variation = (fv/pv) - 1 
End Function 

我想知道如果我能以百分比(0,00%),我已經嘗試在這兩個方面,但沒有sucess返回值。

variation.Style = "0,##%" 

variation.NumberFormat = "0,##%" 
+1

你似乎混淆了一些值,這個數字是如何格式化在一個小區裏。只需返回0到1之間的值,並讓用戶將其格式化爲%即可。類型應該是雙倍而不是長。如果你想要一個0-100範圍內的數字,把結果乘以100.如果你真的想要以某種格式返回,返回類型應該是'String'而不是'Long'或'Double'。但是 - 字符串沒有用於進一步計算的數字有用,所以我認爲這不是一個好主意。 –

+1

或者如果這是發往一個單元格返回一個雙&格式的單元格。 –

+0

[Google是你的朋友](https://www.google.com.br/search?q=vba+format+value+as+percentage&oq=vba+format+value&aqs=chrome.3.69i57j0l5.5719j0j7&sourceid=chrome&ie=UTF -8) –

回答

3

長永遠只能存儲整數。將返回值設置爲雙精度來存儲百分比。

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

感謝您的回答,但最終結果必須是一個數字,以進一步計算。 – Vinicius

+3

@Vinicius然後選擇雙選項。這將滿足您的需求。 – Zerk