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.
microsoft-excel
worksheet-function
Aran Mulholland
źródło
źródło
Odpowiedzi:
W VBA jest to dość łatwe. Wystarczy utworzyć ten podprogram:
Excel wywoła tę procedurę za każdym razem, gdy zmieni się cokolwiek w arkuszu. The
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.źródło
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 $)
źródło