Am 02.09.2013 18:06, schrieb Günter Fritze:
> Hallo zusammen.
> Ich habe eine quadratische Tabelle, bei der in jeder Zelle eine Ziffer 
> stehen soll. Dies will ich prüfen. Jeder Zelleninhalt wird mit
> 
>               oZelle = oBlatt.getCellByPosition(iI,iJ)
>              sTmp = oZelle.String
> gelesen und mit
> 
>              iErg = inStr(sZchn,sTmp)
>              If iErg = 0  Then
> auf Ziffer geprüft. Dies funktioniert gut, wenn der zu untersuchende 
> Zelleninhalt ein unzulässiges Zeichen ist, das Ergebnis ist 0. Aber 
> wehe, wenn in der zu untersuchenden Zelle garnicts ist, also "". Dann 
> steht in iErg eine 1,??????? und in sTmp ein "". 

Daß sTmp ein Leerstring ist, wenn die Quelle aka der Zellinhalt leer
ist, bedarf wohl keiner weiteren Erklärung, oder? Aber was suchst Du mit
der inStr-Funktion in dem Fall genau? Du suchst, ob in dem zu
durchsuchenden Text (SZchn) ein Leerstring enthalten ist. Und das ist
zwischen jedem einzelnen Zeichen in diesem Text unendlich mal der Fall.
Daher bekommst du als Ergebnis ein TRUE.

Übrigens begehst Du noch einen anderen Denkfehler; wenn nämlich die
Variable sZchn aus z. B. der Zeichenfolge "0123456789" besteht, dann
findet die Funktion auch Werte wie 12, 23, 34 usw. Du solltest also auf
alle Fälle überprüfen, ob die Länge des Zellinhaltes genau 1 ist (und
dann hast Du auch bei einem Leerstring keine Probleme).

Ich würde das folgendermaßen lösen:

| If Len(sTmp) = 1  Then
|    iErg = inStr(sZchn,sTmp)
| Else
|    iErg = 0
| Endif
| If iErg = 0  Then

Aber warum verhinderst Du nicht einfach von vorn herein, daß da
überhaupt etwas anderes als genau eine Ziffer eingetragen werden kann?

Spalte oder Bereich markieren => Daten => Gültigkeit => Kriterien =>
Zulassen: 'Ganze Zahl' / [X] Leerzeichen zulassen => Daten: 'zwischen'
=> Min: '1' / Max: '0' => Fehlermeldung => [X] Fehlermeldung anzeigen /
Meldungstext: 'Nur ganze Zahlen zwischen 1 und 9 erlaubt' o. ä.

Wolfgang
-- 


-- 
Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org
Probleme? 
http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert

Reply via email to