如果用户输入的值高于“£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。如果您想对其他单元格施加相同的限制,您可以通过更改一行代码来实现。
因为它是工作表代码,所以非常容易安装和自动使用:
- 右键单击 Excel 窗口底部附近的选项卡名称
- 选择查看代码-这将打开一个 VBE 窗口
- 粘贴内容并关闭 VBE 窗口
如果您有任何疑虑,请首先在试用工作表上尝试一下。
如果您保存工作簿,宏将随之保存。如果您使用的是 2003 以后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx
要删除宏:
- 调出如上所示的 VBE 窗口
- 清除代码
- 关闭 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
必须启用宏才能使其工作!