我用小數點後兩位數字做了很多工作。我的添加機具有很好的功能,我可以輸入一串數字,如123456,並自動爲我插入小數,並將其顯示爲1234.56。 Excel在高級選項下有一項功能,可以自動輸入小數點,但是它是全局選項,因此不如它可能有幫助。因此,我爲App_SheetChange事件處理程序設置了一些VBA代碼,該代碼僅在格式化爲顯示帶兩位小數的數字的單元格上適用於我。這樣,我不會在我不想要它們的地方得到小數。代碼非常簡單。它看起來像這樣:自動十進制插入
If InStr(sFormat, "0.00") > 0 Then
If InStr(".", Source.Formula) = 0 Then
If IsNumeric(Source.Formula) Then
s = "00" & Source.Formula
s = Left(s, Len(s) - 2) & "." & Right(s, 2)
App.EnableEvents = False
Source.Formula = CDbl(s)
App.EnableEvents = True
End If
End If
End If
此作品不夠好,當我輸入數據,但如果我從另一個單元格複製數據,它的工作原理,如果有小數點後顯著數字,但如果它不是零。有沒有辦法判斷數據是否被輸入到單元格中,或者是否從剪貼板粘貼了數據?
如果輸入是123456,這可以正常工作。它返回1234.56。但是,如果輸入爲800,則不返回8.00,則返回0.08。哦。我明白爲什麼。我需要在更改值之前將Application.EnableEvents設置爲False。我創建了我的事件處理程序來運行應用程序對象,並將其作爲加載項。我需要對此進行測試,看看它是否可以用作加載項。 – jrodenhi
你是對的。我忘記了我在操縱單元格,導致_Change事件再次觸發,如果結果數字是另一個整數(然後反覆重複,直到它是一個分數),它會出現一個錯誤。我已經更新了代碼是正確的。 –
所以這對Worksheet_Change起作用。我沒有成功使它在Application_SheetChange上工作,我可能需要它在那裏工作,以便使它在我的工作表上作爲加載項一般可用。我必須離開我的實驗一段時間,以便我可以完成其他一些事情。如果你能在這方面給我任何建議,我將不勝感激。否則,我會在稍後再回來。謝謝。 – jrodenhi