0

我有一系列需要采用会计格式的单元格。我遇到的问题是,当用户尝试输入日期时,它会将单元格的格式更改为日期并弄乱计算。当用户尝试输入日期时,我希望弹出消息框错误并清除无效数据。

我已经将数据验证设置为十进制,但是当我尝试通过输入日期(1/2、1/2/11 或 1-2-11)对其进行测试时,excel 会将单元格的数字格式更改为分数或日期,并且验证错误事件不会发生。

或者,我有没有办法锁定一系列单元格的数字格式,以便 excel 将停止根据用户输入转换单元格的格式?

4

2 回答 2

1

您可以使用 Excel 中的数据验证工具

选择验证

使用它,您可以强制用户在单元格中输入某种类型的数据

于 2013-07-09T17:37:28.287 回答
0

您可以将此代码放在工作表的 VBA 模块中。它显示消息,清除值并将格式设置回会计:

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
于 2013-07-09T19:36:51.427 回答