2016-12-14 215 views
1

我有格式爲0.00%的單元格。當用戶輸入時,它的格式很好但是,如果一個單元格由在vba中完成的計算填充,它不會限制爲2位小數,而是像33.3333333333那樣。有沒有辦法讓它符合單元格的格式?謝謝。 cgeddes使用excel vba自動計算某些單元格。小數點後兩位小數格式被覆蓋

B5由首期變化而改變

Case "$D$5" ' Downpayment Entered 
     Me.Unprotect 
     range("B5") = (range("D5").Value/range("D4").Value) * 100 
     Debug.Print "Percent " & range("B5").Value 
     range("D6").Value = (range("D4").Value - range("D5").Value) 
      If range("D21") <> 0 Then 
     MsgBox "The Total Mortgaged Amount has changed, The Mortgage Payment Amount (Cell D21) is no longer valid. Please Re-calculate Mortgage with New Amount" 
     End If 

在B5的格式是0.00 ## \%當用戶輸入是顯示爲5.00%或10.00%的任何他們進入。

嗯。也許##意味着什麼? 謝謝蒂姆今天再次幫助我。

+0

確切地說,單元格是如何填充的?顯示你的代碼總是有助於解答。 –

+0

可能的重複[在Excel VBA中有什麼.NumberFormat選項?](http://stackoverflow.com/questions/20648149/what-are-numberformat-options-in-excel-vba) –

+0

它可能與* *由於使用不同的單元格屬性,vba代碼正在更改單元格值。看看: http://stackoverflow.com/questions/17359835/what-is-the-difference-between-text-value-and-value2 – Assaf

回答

0

正如我在我的評論說,如果要更改數字格式,請使用:

range("B5").NumberFormat = "0.00\%" 
range("B5") = (range("D5").Value/range("D4").Value) * 100 

如果你想實際輪數,使用

range("B5") = Round((range("D5").Value/range("D4").Value) * 100,2) 

Round參數是:Round(Number, [Decimal Places])

+1

User1274820,很抱歉,我沒有看到您的原始評論。我仍然沒有。我用你的解決方案,它的工作完美。謝謝。 – geddeca

相關問題