我有一系列需要采用会计格式的单元格。我遇到的问题是,当用户尝试输入日期时,它会将单元格的格式更改为日期并且会影响计算。当用户尝试输入日期时,我想要弹出消息框错误并清除无效数据。
我已经将数据验证设置为十进制,但是当我尝试通过输入日期(1 / 2,1 / 2,1 / 11或1-2-11)来测试它时,将单元格的数字格式更改为分数或日期和验证错误事件不会发生。
或者,有没有办法让我锁定一系列单元格的数字格式,以便excel将根据用户输入停止转换单元格的格式?
答案 0 :(得分:1)
您可以使用Excel中的数据验证工具
使用此功能可以强制用户在单元格中输入特定类型的数据
答案 1 :(得分:0)
您可以将此代码放在工作表的VBA模块中。它显示消息,清除值并将格式设置回Accounting:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim AccountingRange As Excel.Range
Dim cell As Excel.Range
Set AccountingRange = Me.Range("B2:B20")
If Intersect(Target, AccountingRange) Is Nothing Then
Exit Sub
End If
Application.EnableEvents = False
For Each cell In Intersect(Target, AccountingRange)
If IsDate(cell.Text) Then
With cell
MsgBox "You entered a date in " & .Address & "." & vbCrLf & "Please don't do that!"
cell.ClearContents
.NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"
End With
End If
Next cell
Application.EnableEvents = True
End Sub