Skonfiguruj sprawdzanie poprawności danych
Będziesz chciał użyć funkcji sprawdzania poprawności danych w programie Excel, aby ograniczyć komórki do określonego tekstu. W twoim przypadku: „Test1”, „Test2” i „Test3”
- Wybierz komórki, które powinny akceptować tylko wartości „Test1”, „Test2” i „Test3”
Na karcie Dane w grupie Narzędzia danych kliknij przycisk Sprawdzanie danych .
Z listy rozwijanej Zezwalaj: wybierz Lista
W polu Źródło: wpisz Test1, Test2, Test3
Kliknij OK, aby zastosować zmiany.
W tym momencie do każdej komórki wybranej w kroku 1 zostanie przypisana lista rozwijana. Użytkownicy arkusza kalkulacyjnego będą mogli wejść tylko do Test1 , Test2 lub Test3 . Jeśli spróbują wprowadzić cokolwiek innego, otrzymają następujący komunikat o błędzie:
W razie potrzeby można dostosować tekst komunikatu o błędzie, klikając kartę Alert błędów w kroku 4 powyżej.
Zapobiegaj kopiowaniu / wklejaniu w komórkach sprawdzonych pod kątem danych
Będzie to działać świetnie, Z WYJĄTKIEM w przypadku, gdy ktoś wklei zawartość nad komórkami. Jedynym sposobem, aby temu zapobiec, jest napisanie makra, które wykrywa aktualizacje komórek, określa, czy sprawdzanie poprawności danych jest włączone w komórkach, a następnie odmawia wklejenia, jeśli jest prawdziwe.
- Wybierz wszystkie komórki, które mają sprawdzanie poprawności danych i nazwij je DataValidationRange . Możesz nazwać zakresy komórek, wpisując nazwę po lewej stronie paska formuły, w której znajduje się adres komórki.
- W module kodu dla arkusza roboczego (na przykład Arkusz1) dodaj następujący kod:
Private Sub Worksheet_Change (ByVal Target As Range)
„Czy zakres walidacji nadal podlega walidacji?
Jeśli HasValidation (Range („DataValidationRange”)), to
Wyjdź z Sub
Jeszcze
Zastosowanie
MsgBox „Błąd: Nie można wkleić danych do tych komórek.” I _
„Zamiast tego użyj menu, aby wprowadzić dane.”, VbCritical
End If
Napis końcowy
Funkcja prywatna HasValidation (r) As Boolean
„Zwraca wartość True, jeśli każda komórka w zakresie r używa sprawdzania poprawności danych
Po błędzie Wznów dalej
x = r.Validation.Type
Jeśli Err.Number = 0, to HasValidation = True Else HasValidation = False
Funkcja zakończenia
Niestety VBA to jedyny sposób, aby zapobiec wklejeniu się przez komórki. To był problem z Walidacją danych w Excelu od samego początku. Mam nadzieję, że tak czy inaczej.