Перейти к основному содержанию

Как разрешить в Excel только отрицательные числа?

Как в Excel разрешить ввод только отрицательных чисел? Эта статья познакомит вас с некоторыми полезными и быстрыми приемами для решения этой задачи.

Разрешить только отрицательные числа в Excel с проверкой данных

Разрешить только отрицательные числа в Excel с кодом VBA


стрелка синий правый пузырь Разрешить только отрицательные числа в Excel с проверкой данных

Как правило, проверка достоверности данных функция может помочь вам, пожалуйста, сделайте следующее:

1. Выделите ячейки или столбцы, в которых нужно разрешить ввод только отрицательных чисел, а затем щелкните Данные > проверка достоверности данных > проверка достоверности данных, см. снимок экрана:

документ разрешает только отрицательный 1

2. В проверка достоверности данных диалоговое окно под Настройки Вкладка, выполните следующие действия:

(1.) В Разрешить раздел, выбрать Десятичная дробь из выпадающего списка;

(2.) В Данные раздел, пожалуйста, выберите меньше или равно вариант;

(3.) Наконец, введите номер 0 в максимальная текстовое окно.

документ разрешает только отрицательный 2

3. Затем нажмите OK, и теперь можно вводить только отрицательные числа и 0, если введено положительное число, отобразится предупреждающее сообщение, см. снимок экрана:

документ разрешает только отрицательный 3


стрелка синий правый пузырь Разрешить только отрицательные числа в Excel с кодом VBA

Вот код 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

документ разрешает только отрицательный 4

Внимание: В приведенном выше коде A1: A1000 - это ячейки, в которые вы хотите вводить только отрицательные числа.

2. Затем сохраните и закройте этот код, вернитесь на рабочий лист, и теперь, когда вы вводите некоторые положительные числа в ячейки, указанные в коде, положительные числа будут автоматически преобразованы в отрицательные.

Лучшие инструменты для офисной работы

Популярные опции: Найдите, выделите или определите дубликаты   |  Удалить пустые строки   |  Объедините столбцы или ячейки без потери данных   |   Раунд без формулы ...
Супер поиск: Множественный критерий VLookup    VLookup с несколькими значениями  |   VLookup по нескольким листам   |   Нечеткий поиск ....
Расширенный раскрывающийся список: Быстрое создание раскрывающегося списка   |  Зависимый раскрывающийся список   |  Выпадающий список с множественным выбором ....
Менеджер столбцов: Добавить определенное количество столбцов  |  Переместить столбцы  |  Переключить статус видимости скрытых столбцов  |  Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка Фокус   |  Просмотр дизайна   |   Большой Формулный Бар    Менеджер книг и листов   |  Библиотека ресурсов (Авто текст)   |  Выбор даты   |  Комбинировать листы   |  Шифровать/дешифровать ячейки    Отправлять электронные письма по списку   |  Суперфильтр   |   Специальный фильтр (фильтровать жирным шрифтом/курсивом/зачеркиванием...) ...
15 лучших наборов инструментов12 Текст Инструменты (Добавить текст, Удалить символы, ...)   |   50+ График Тип (Диаграмма Ганта, ...)   |   40+ Практических Формулы (Рассчитать возраст по дню рождения, ...)   |   19 Вносимые Инструменты (Вставить QR-код, Вставить изображение из пути, ...)   |   12 Конверсия Инструменты (Числа в слова, Конверсия валюты, ...)   |   7 Слияние и разделение Инструменты (Расширенные ряды комбинирования, Разделить клетки, ...)   |   ... и более

Улучшите свои навыки работы с Excel с помощью Kutools for Excel и почувствуйте эффективность, как никогда раньше. Kutools for Excel предлагает более 300 расширенных функций для повышения производительности и экономии времени.  Нажмите здесь, чтобы получить функцию, которая вам нужна больше всего...

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Comments (4)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
How do I change the automatic formatting with this code from Currency to Accounting ?
This comment was minimized by the moderator on the site
Hi! Great article. One question: if, instead of a coherent group of cells, I want to apply this in different parts of the sheet (e.g. A1:A2 AND A6:A8), is there a way to do that with the VBA solution? I.e.: how do I replace the "A1:A1000" with several sets of cells?
This comment was minimized by the moderator on the site
Hello, GB,
To apply this code for multiple ranges, please use the following code:

Note: when using this code, first, you should right click the sheet tab, and then click View code from the context menu, and then copy the following code into the module.

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
Const sRg As String = "A1:A10,B1:B10,C1:C20" 'Separate the ranges by commas
Dim xRg As Range
Dim xSRg As Range
On Error GoTo err_exit:
Application.EnableEvents = False
Set xSRg = Range(sRg)
If Not Intersect(Target, xSRg) 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

Please try, hope it can help you!
This comment was minimized by the moderator on the site
Super, thanks! Very helpful.
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations