2016-10-04 95 views
0

我有一個VBA宏在單元格上執行一些操作。由於某些原因,其中一些四捨五入到小數點後兩位,而我想要整數(5位小數)。我得到0.13,而不是0,1319:停止Excel(或VBA)舍入小數

Cells(rowWhere2Write + 2, 4).Value = Worksheets(originalSheet.Name).Cells(r, "AA").Value2 - Cells(rowWhere2Write + 4, 11) 

在工作表中(originalSheet.Name).Cells(R, 「AA」)值2我腦水腫此值:0,1319€(是的,這是貨幣格式化即使我只對0,1319感興趣)。

它爲什麼四捨五入到小數點後兩位?我怎樣才能得到4-5小數而不是兩個?

有沒有辦法獲得5位小數,並使用€貨幣格式化我的新單元格?到目前爲止,我已經嘗試過了,但我也得到了截斷到兩位小數的數字。

感謝

+1

我建議你在所有情況下都使用'Value2'而不是'Value'(或省略它),然後將'Numberformat'分配給你想要的單元格。 – Rory

+0

我試過了: 單元格(rowWhere2Write + 2,4).NumberFormat =「0.00000」 Cells(rowWhere2Write + 2,4).Value2 = Worksheets(originalSheet.Name).Cells(r,「AA」) .Value2 - Cells(rowWhere2Write + 4,11).Value2 但是我只得到0,13000,不能得到0,1319。改變指令的順序使我得到相同的結果。單元格(rowWhere2Write + 2,4)。值也是相同的結果。我可以嘗試什麼? –

+0

兩個單元格的值究竟是什麼? – Rory

回答

0

是NumberFormat的一個問題... 嘗試selection.NumberFormat = 「」

如果€對你很重要,儘量selection.NumberFormat =「0.00 ????€ 「(更多?如果你喜歡)

+0

你能更具體嗎?檢查下面的評論,我無法使它工作。 –

+1

或者你的單元格包含0.13,你需要更改給出這個的代碼,或者它包含0.1319,但顯示0.13和selection.NumberFormat =「0.00 ????€」將工作... – Pierre

+0

啊,我明白了。原來,有一個減法操作,確切的數值缺失,使單元格精確到0.13。多麼巧合的大聲笑。謝謝 –