Okrągłe wartości komórek na końcu edycji w Excelu

3

Chcę zbudować arkusz roboczy, który gdy liczby są wprowadzane do komórki, a użytkownik kończy edycję w tej komórce, są automatycznie zaokrąglane do najbliższego 0,25. Nie chcę mieć dwóch kolumn, jednej dla wartości oryginalnej i jednej dla wartości zaokrąglonej. Czy to możliwe, a jeśli tak; jak można to osiągnąć?

Oto przepływ pracy:

  • Typy użytkowników 2.30 w komórce
  • Użytkownik przechodzi do następnej komórki lub trafień, aby opuścić komórkę
  • Wartość komórki zmienia się z 2,3 na 2,25

Chcę również, aby wartość komórki wynosiła 2,25, nie chcę, aby wartość wynosiła 2,30, ale była sformatowana jako 2,25.

Aran Mulholland
źródło
1
Rozwiązanie lokalne wymaga kodu VBA. Dlatego należy to do StackOverflow. Nie piszą też kodu i pytają: „Czego próbowałeś?”.
Steven
Jestem użytkownikiem przepełnienia stosu, wiem, jak tam działa. Jeśli używasz kodu VBA, czy to oznacza, że ​​podczas otwierania dokumentu pojawi się komunikat o zezwoleniu na makra?
Aran Mulholland
3
Domyślnie tak. Możesz dostosować zabezpieczenia makr na swoim komputerze. Komórka może zawierać wartość lub formułę, a nie jedno i drugie. Dlatego potrzebujesz VBA.
Steven

Odpowiedzi:

2

W VBA jest to dość łatwe. Wystarczy utworzyć ten podprogram:

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    Target.Value = Round(4 * Target.Value) / 4
    Application.EnableEvents = True
End Sub

Excel wywoła tę procedurę za każdym razem, gdy zmieni się cokolwiek w arkuszu. The

Application.EnableEvents = False

instrukcja tymczasowo wyłącza to automatyczne wywoływanie, aby zapobiec Target.Value = …wywołaniu przez procedurę procedury rekurencyjnej. Zobacz Jak dodać VBA w MS Office? ogólne informacje na temat używania VBA.

Scott
źródło
1

Najbliższe, jakie mogę uzyskać bez VBA, to sprawdzanie poprawności danych. Nie zmieni wartości, ale ostrzeże użytkownika, że ​​wprowadził niepoprawną wartość. Uwaga: możesz „oszukiwać” sprawdzanie poprawności danych w programie Excel, wklejając dane spoza zakresu sprawdzonego pod kątem danych, więc jeśli jest to konieczne, prawdopodobnie nie jest to idealne rozwiązanie.

Komórka w pytaniu należy wybrać, a następnie przejść do danych / Weryfikacji i wybierz Zezwalaj „Custom”, a formuła z =MOD(A2,0.25)=0(tego wzoru jest ważna dla komórce A2). Następnie możesz przejść do karty „Błąd alertu” i zmienić komunikat o błędzie na „Wprowadź wartość kończącą się na 0,25, 0,5, 0,75 lub liczbę całkowitą w tej komórce”

Najlepszym sposobem na przesłanie tego do całej kolumny jest wykonanie pojedynczej komórki, a następnie skopiowanie jej do wielu innych komórek. Sprawdzanie poprawności danych powinno odbywać się odpowiednio (więc nie zawsze będzie oparte na komórce A2 - choć przypuszczalnie jest to możliwe przy użyciu 2 $ A $)

Jon
źródło