Przejdź do głównej zawartości

Jak zezwolić tylko na liczby ujemne w programie Excel?

W programie Excel, jak zezwolić tylko na wprowadzanie liczb ujemnych? W tym artykule przedstawimy kilka przydatnych i szybkich sztuczek, które pomogą Ci rozwiązać to zadanie.

Zezwalaj tylko na liczby ujemne w programie Excel z walidacją danych

Zezwalaj tylko na liczby ujemne w programie Excel z kodem VBA


strzałka niebieski prawy bąbelek Zezwalaj tylko na liczby ujemne w programie Excel z walidacją danych

Zwykle Walidacja danych funkcja może ci pomóc, wykonaj następujące czynności:

1. Wybierz komórki lub kolumny, dla których chcesz zezwolić tylko na wprowadzanie liczb ujemnych, a następnie kliknij Dane > Walidacja danych > Walidacja danychzobacz zrzut ekranu:

doc dopuszcza tylko negatywne 1

2, w Walidacja danych okno dialogowe w obszarze Ustawienia wybierz następujące opcje:

(1.) W Dopuszczać Sekcja, wybierz Dziesiętny z rozwijanej listy;

(2.) W Dane wybierz sekcję mniejszy lub równy opcja;

(3.) Na koniec wprowadź liczbę 0 do Maksymalny pole tekstowe.

doc dopuszcza tylko negatywne 2

3. Następnie kliknij OK, a teraz można wprowadzać tylko liczby ujemne i 0, jeśli wprowadzono liczbę dodatnią, wyświetli komunikat ostrzegawczy, patrz zrzut ekranu:

doc dopuszcza tylko negatywne 3


strzałka niebieski prawy bąbelek Zezwalaj tylko na liczby ujemne w programie Excel z kodem VBA

Oto kod VBA, który również może ci pomóc, z następującym kodem, gdy wpiszesz liczbę dodatnią, zostanie ona automatycznie przekonwertowana na ujemną, wykonaj następujące czynności:

1. Kliknij prawym przyciskiem myszy kartę arkusza, dla której chcesz zezwolić tylko na liczby ujemne, i wybierz Wyświetl kod z menu kontekstowego w wyskakującym pliku Microsoft Visual Basic for Applications okno, skopiuj i wklej następujący kod w puste miejsce Moduł:

Kod VBA: zezwalaj tylko na liczby ujemne w arkuszu:

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 dopuszcza tylko negatywne 4

Note: W powyższym kodzie, A1: A1000 to komórki, w których chcesz wprowadzić tylko liczby ujemne.

2. Następnie zapisz i zamknij ten kod, wróć do arkusza roboczego, a teraz, gdy wprowadzisz kilka liczb dodatnich do komórek określonych w kodzie, liczby dodatnie zostaną automatycznie przekonwertowane na liczby ujemne.

Najlepsze narzędzia biurowe

🤖 Pomocnik AI Kutools: Zrewolucjonizuj analizę danych w oparciu o: Inteligentne wykonanie   |  Wygeneruj kod  |  Twórz niestandardowe formuły  |  Analizuj dane i generuj wykresy  |  Wywołaj funkcje Kutools...
Popularne funkcje: Znajdź, wyróżnij lub zidentyfikuj duplikaty   |  Usuń puste wiersze   |  Łącz kolumny lub komórki bez utraty danych   |   Okrągły bez wzoru ...
Super wyszukiwanie: Wiele kryteriów VLookup    Wiele wartości VLookup  |   Przeglądanie pionowe na wielu arkuszach   |   Wyszukiwanie rozmyte ....
Zaawansowana lista rozwijana: Szybko twórz listę rozwijaną   |  Zależna lista rozwijana   |  Lista rozwijana wielokrotnego wyboru ....
Menedżer kolumn: Dodaj określoną liczbę kolumn  |  Przesuń kolumny  |  Przełącz stan widoczności ukrytych kolumn  |  Porównaj zakresy i kolumny ...
Polecane funkcje: Fokus siatki   |  Widok projektu   |   Duży pasek formuły    Menedżer skoroszytów i arkuszy   |  Biblioteka zasobów (Automatyczny tekst)   |  Selektor dat   |  Połącz arkusze   |  Szyfruj/odszyfruj komórki    Wysyłaj e-maile według listy   |  Super filtr   |   Specjalny filtr (filtruj pogrubienie/kursywa/przekreślenie...) ...
15 najlepszych zestawów narzędzi12 Tekst Tools (Dodaj tekst, Usuń znaki, ...)   |   50 + Wykres rodzaje (Wykres Gantta, ...)   |   40+ Praktyczne Wzory (Oblicz wiek na podstawie urodzin, ...)   |   19 Wprowadzenie Tools (Wstaw kod QR, Wstaw obraz ze ścieżki, ...)   |   12 Konwersja Tools (Liczby na słowa, Przeliczanie walut, ...)   |   7 Połącz i podziel Tools (Zaawansowane wiersze łączenia, Podział komórki, ...)   |   ... i więcej

Zwiększ swoje umiejętności Excela dzięki Kutools for Excel i doświadcz wydajności jak nigdy dotąd. Kutools dla programu Excel oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas.  Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...

Opis


Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
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