Gdzie tekst walidacji danych jest przechowywany w programie Excel?

9

Mam arkusz Excel 2003 z wieloma różnymi regułami sprawdzania poprawności danych. Czy w każdym razie można je przeglądać inaczej niż poprzez zwykłe okno dialogowe sprawdzania poprawności danych?

Przydałoby się wyeksportować listę z alertami i regułami sprawdzania poprawności, a także sprawdzić tę listę zamiast w oknie dialogowym.

Czy ktoś wie, czy to jest możliwe? Lub jak zbudować makro, aby to zrobić?

Jeśli to pytanie należy przenieść do StackOverflow, jak mam to zrobić?

datatoo
źródło
1
To świetne pytanie. Obiekt sprawdzania poprawności nie jest podobny do obiektu Nazwy - sprawdzanie poprawności jest powiązane z określonym zakresem. Hmmm ...
DaveParillo

Odpowiedzi:

4

Istnieje obiekt walidacji Excel VBA, powiązany z zakresem. Zobacz kod:

With Range("e1").Validation
.Add Type:=xlValidateWholeNumber, _
    AlertStyle:=xlValidAlertInformation, _
    Minimum:="5", Maximum:="10"
.InputTitle = "Needs Wholenumber"
.ErrorTitle = "Integers"
.InputMessage = "Enter an integer from five to ten"
.ErrorMessage = "You must enter a number from five to ten"
End With

Te właściwości są czytelne, dzięki czemu można wyciągnąć .InputTitle lub .InputMessage lub wartości minimalne i maksymalne dozwolone programowo dla sprawdzania poprawności tej komórki, aby zobaczyć, która walidacja jest używana.

Spróbuj tego:

Sub test()
Range("a1") = Range("e1").Validation.InputTitle & ": Range = " & Range("e1").Validation.Formula1 & " to " & Range("e1").Validation.Formula2
End Sub

Powyższy kod wraca do komórki A1: Potrzebuje pełnego numeru: Zakres = 5 do 10 . Aby uzyskać więcej informacji, zobacz książki online. http://msdn.microsoft.com/en-us/library/aa224495(office.11).aspx

Glenn

Glenn M.
źródło
1
To jest Excel 2007, ale sądzę, że model z 2003 roku będzie podobny do tego.
Glenn M
to jest podstawowe podejście, które zastosowałem. zakres A1: AZ4000 został przetestowany z komórką For Each w zakresie, zbierając Validation.ErrorTitle i Validation.ErrorMessage z ich cell.address i został zapisany na innym arkuszu, aby zobaczyć wyniki. Następnie mógłbym napisać warunkowe zasady zmiany Wiadomości i Tytułów. Dużo zabawy z dziedziczeniem kogoś wcześniejszej pracy. Dzięki Glenn, nie dokładnie to, czego potrzebowałem, ale pomocna +1. Jeśli ktoś wie, gdzie to wszystko jest zapisane w skoroszycie, nadal jestem bardzo ciekawy.
datatoo
Czy pytasz, gdzie jest przechowywany w pliku binarnym BIFF8?
dkusleika
Nie jestem pewien, jak i gdzie jest on przechowywany, ponieważ w danym arkuszu znajduje się wiele zakresów komórek. Przeważnie chciałbym prosty sposób edycji przechowywanych treści. Możesz uzyskać informacje, ale pośrednio.
datatoo