我有Excel工作表。我已锁定并保护其他牢房。我有2个需要用户输入的单元格,并且两者都是货币数据类型。如果我在这些单元格中输入文本,则会使计算混乱,因此我希望以某种方式设置这些单元格的格式,以便任何人键入文本或句子都会产生错误,并且不会影响计算并要求输入数字。
我是Excel编程的新手,所以对我来说很难。
提示:数据验证是一种非常弱的控制机制。当您将值复制并粘贴到单元格中时,将通过所有数据验证。
为了解决问题,让我们假设工作表1上的货币单元为A1和B1。
在VBE中转到sheet1的代码并编写一个宏,如下所示
Dim lOldVal As Long 'Sheet Module level variable
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Or Target.Address = "$B$1" Then
If Not IsNumeric(Target.Value) Then
MsgBox "Only numeric values allowed.", vbInformation, "Foo"
Application.EnableEvents = False
Target.Value = lOldVal
Application.EnableEvents = True
End If
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Or Target.Address = "$B$1" Then
lOldVal = Target.Value
End If
End Sub
将$ A $ 1和$ B $ 1更改为您的实际单元格地址。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句