【发布时间】:2018-02-27 15:49:35
【问题描述】:
我有一个有效的代码,但如果可能的话,我想简化它。 当范围内的单元格的值发生变化时,此代码起作用。它会检查插入的数据是否为数字,然后自动将其除以 100,因此我不必使用分隔整数和小数的字符,当您要插入数千个数字时,这会产生很大的不同表。
我的代码是:
Public Sub Worksheet_Change(ByVal Target As Range)
Set Intersecao = Intersect(Target, Range("ENTRANUMEROS"))
If (Not (Intersecao Is Nothing)) And (Not IsEmpty(Intersecao)) Then
On Error GoTo Fim
Dim Entrada As Double: Entrada = Intersecao.Value
Application.EnableEvents = False
If IsNumeric(Entrada) Then
Entrada = Entrada / 100
Intersecao.Value = Entrada
Else
MsgBox ("Invalid data.")
Intersecao.Value = ""
Intersecao.Select
End If
Application.EnableEvents = True
End If
Fim:
End Sub
【问题讨论】:
-
(1) 你说它除以
2,但你的代码实际上除以100。 (2) 你的问题到底出在哪里?您究竟在哪里需要简化,为什么? (3) 这可能是CodeReview 的问题,如果根本没有要解决的问题,它只是关于代码美感。 -
对不起,我更正了文字。我正在寻找一种更聪明的方法来做到这一点,我的意思是,从数字键盘插入,比如 123456,然后自动将 1,234.56 放入单元格中。