如果输入的值高于“£20.00”,是否自动将单元格值设为“£20.00”?

如果输入的值高于“£20.00”,是否自动将单元格值设为“£20.00”?

如果用户输入的值高于“£20.00”,是否可以自动将单元格的值设为“£20.00”;如果输入的值小于“£20.00”,则显示实际输入的值。

例如:

在单元格 A1 中,用户输入 £12.50,单元格显示 £12.50。

在单元格 A2 中,用户输入 £21.50,但单元格仅显示 £20.00。

本质上是对可输入的值添加一个硬性限制。我知道您可以使用数据验证来添加限制,但如果用户输入的值超过最大允许值,它不会在单元格中填充该值,而只会弹出警告。

任何帮助都将非常有帮助!

答案1

这有点儿不太妥当,但如果你不想使用宏来更改实际值,则可以使用自定义格式来阻止数据输入单元格显示高于 20 英镑的值(如@PeterH 的回答中所述),但使用隐藏单元格来计算你想要使用的值,例如

=MIN(A2, 20)

或者,如果您只需要在几个地方使用上限值,则可以在使用该值的地方合并类似的公式。

答案2

您可以为此使用自定义数字格式。

[<20]£00.00;[>=20]"£20.00"

选择要应用的单元格,然后右键单击,格式化单元格。

在数字选项卡下,选择自定义,并使用上面的格式。

答案3

将以下工作表事件宏放置在工作表代码区域:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim CheckCells As Range, r As Range, rINT As Range
    Set CheckCells = Range("A2")
    Set rINT = Intersect(CheckCells, Target)

    If rINT Is Nothing Then Exit Sub

    Application.EnableEvents = False
        For Each r In rINT
            If r.Value > 20 Then r.Value = 20
        Next r
    Application.EnableEvents = False
End Sub

它将监测细胞的输入A2并将它们限制为 20。如果您想对其他单元格施加相同的限制,您可以通过更改一行代码来实现。

因为它是工作表代码,所以非常容易安装和自动使用:

  1. 右键单击 Excel 窗口底部附近的选项卡名称
  2. 选择查看代码-这将打开一个 VBE 窗口
  3. 粘贴内容并关闭 VBE 窗口

如果您有任何疑虑,请首先在试用工作表上尝试一下。

如果您保存工作簿,宏将随之保存。如果您使用的是 2003 以后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx

要删除宏:

  1. 调出如上所示的 VBE 窗口
  2. 清除代码
  3. 关闭 VBE 窗口

要了解有关宏的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

要了解有关事件宏(工作表代码)的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/event.htm

必须启用宏才能使其工作!

相关内容