Note: The other languages of the website are Google-translated. Back to English

如何在Excel中仅允许负数?

在Excel中,如何只允许输入负数? 本文将介绍一些有用的快速技巧来帮助您解决此任务。

仅允许在带有数据验证的Excel中使用负数

仅允许在带有VBA代码的Excel中使用负数


箭头蓝色右气泡 仅允许在带有数据验证的Excel中使用负数

通常情况下, 数据验证 功能可以为您提供帮助,请执行以下操作:

1。 选择要只允许输入负数的单元格或列,然后单击 数据 > 数据验证 > 数据验证,请参见屏幕截图:

doc只允许负1

2。 在 数据验证 对话框中的 个人设置 标签,请执行以下选项:

(1.)在 部分中,选择 十进制 从下拉列表中;

(2.)在 数据 部分,请选择 小于或等于 选项;

(3.)最后输入数字 0最大 文本框。

doc只允许负2

3。 然后点击 OK,现在只允许输入负数和0,如果输入正数,则会显示警告消息,请参见屏幕截图:

doc只允许负3


箭头蓝色右气泡 仅允许在带有VBA代码的Excel中使用负数

这是一个VBA代码,它也可以通过以下代码为您提供帮助,当您输入正数时,它将自动转换为负数,请执行以下操作:

1。 右键单击要只允许使用负数的工作表选项卡,然后选择 查看代码 从上下文菜单中,弹出 Microsoft Visual Basic应用程序 窗口,请复制以下代码并将其粘贴到空白处 模块:

VBA代码:在工作表中仅允许使用负数:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    Const sRg As String = "A1:A1000"
    Dim xRg As Range
    On Error GoTo err_exit:
    Application.EnableEvents = False
    If Not Intersect(Target, Range(sRg)) Is Nothing Then
        For Each xRg In Target
            If Left(xRg.Value, 1) <> "-" Then
                xRg.Value = xRg.Value * -1
            End If
        Next xRg
    End If
err_exit:
    Application.EnableEvents = True
End Sub

doc只允许负4

备注:在上面的代码中, A1:A1000 是您只想输入负数输入的单元格。

2. 然后保存并关闭此代码,返回工作表,现在,当您在代码中指定的单元格中输入一些正数时,正数将自动转换为负数。


最佳办公效率工具

Kutools for Excel解决了您的大多数问题,并使您的生产率提高了80%

  • 重用: 快速插入 复杂的公式,图表 以及您以前使用过的任何东西; 加密单元 带密码 创建邮件列表 并发送电子邮件...
  • 超级公式栏 (轻松编辑多行文本和公式); 阅读版式 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不会丢失数据; 拆分单元格内容; 合并重复的行/列...防止细胞重复; 比较范围...
  • 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择...
  • 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等...
  • 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级滤镜 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体...
  • 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF...
  • 超过300种强大功能. 支持 Office / Excel 2007-2021 和 365。支持所有语言。 在您的企业或组织中轻松部署。 完整功能 30 天免费试用。 60 天退款保证。
kte选项卡201905

Office选项卡为Office带来了选项卡式界面,使您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部
按评论排序
注释 (4)
还没有评分。 成为第一位评论!
该评论由网站上的主持人最小化
你好! 很棒的文章。 一个问题:如果我想在工作表的不同部分应用它而不是一组连贯的单元格(例如 A1:A2 和 A6:A8),有没有办法用 VBA 解决方案来做到这一点? 即:如何用几组单元格替换“A1:A1000”?
该评论由网站上的主持人最小化
你好,GB,
要将此代码应用于多个范围,请使用以下代码:

注意:使用此代码时,首先应右键单击工作表选项卡,然后从上下文菜单中单击查看代码,然后将以下代码复制到模块中。

私人子Worksheet_Change(按目标的ByVal目标)
'更新通过 Extendoffice
Const sRg As String = "A1:A10,B1:B10,C1:C20" '用逗号分隔范围
将 xRg 调暗为范围
将 xSRg 调暗为范围
在错误转到 err_exit 时:
Application.EnableEvents = False
设置 xSRg = 范围(sRg)
If Not Intersect(Target, xSRg) 则什么都不是
对于目标中的每个 xRg
If Left(xRg.Value, 1) <> "-" Then
xRg.Value = xRg.Value * -1
结束如果
下一个 xRg
结束如果
错误退出:
Application.EnableEvents = True
END SUB

请尝试,希望对您有所帮助!
该评论由网站上的主持人最小化
超级,谢谢! 很有帮助。
该评论由网站上的主持人最小化
如何使用此代码将自动格式从 Currency 更改为 Accounting ?
这里还没有评论
留下你的意见
以访客身份发帖
×
评价此帖子:
0   产品特性
建议地点

关注我们

版权所有 © 2009 - extendoffice.com。 | 版权所有。 供电 ExtendOffice。 | 网站地图
Microsoft和Office徽标是Microsoft Corporation在美国和/或其他国家的商标或注册商标。
受Sectigo SSL保护