限制Excel单元格input值

我有Excel工作表。 我已locking和保护其他细胞。 我有2个单元需要用户input,都是货币数据types。 如果我在这些单元格中input文本,它会混淆计算,所以我想格式化这些单元格,如果任何人input文本或句子,它会给出错误,不会影响计算,并要求input数字。

我是Excel编程的新手,所以对我来说第一次很难。

提示: 数据validation是一个非常弱的控制机制。 在单元格中复制和粘贴值时,所有数据validation都会通过。

为了解决问题,我们假设货币单元格是sheet1上的A1和B1。

转到VBE Sheet1的代码,写一个macros,就像这样

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。

我不是一个优秀的程序员,但是我在几个星期前发现了这个excel文件
你必须去data选项卡,然后Data Validation然后你把你的标准
你甚至可以把一个input消息和一个错误消息