Excel - Visual Basic rozpoznawianie tekst / liczba


(Alan Elektro) #1

Witam!

Potrzebuje drobnej pomocy.

Mam pole typu "textedit1" chciałbym sprawdzić czy jest w nim wpisany tekst czy liczba. Po prostu chce zabezpieczyć marko przed błędnym wpisaniem danych (zamiast liczbowych tekstowe i na odwrót).

Chodzi o Visual Basic wbudowany w pakiet MsOffice (np. w wersji 2003)

dziękuje za ewentualną podpowiedź

pozdrawiam


(Marcindodo) #2

może zamienić na kod ASCII i sprawdzić czy zawiera się w przedziale 0-9 ? no i wtedy inne warunki przedział a-z A-Z etc


([alex]) #3

Zmiana na kod ASCII, nie zauważy ze "12345ala ma kota" nie jest liczbą

=isnumber(A1)

=czy.liczba(A1)


(Mireczek) #4

Ja to kiedyś robiłem rozbierając cały łańcuch na poszczególne znaki i sprawdzając po jednym, ale można to zrobić dużo prościej używając tylko funkcji INSTR. Mój stary kod:

For I = 1 To Len(Podaj_Temperaturę.TextBox2.Text)

            Znak = UCase(Mid$(Podaj_Temperaturę.TextBox2.Text, I, 1))

            If InStr(".,-0123456789", Znak) > 0 Then

                If Znak = "," Then Znak = "."

                Temp_Temp = Temp_Temp + Znak

            Else

                Beep

                Podaj_Temperaturę.TextBox2.Text = ""

                Beep

                Temp_Temp = ""

                Exit For

            End If

        Next I

(Jharla) #5

:arrow: a może porostu

If IsNumeric(TextBox1.Value) = False Then MsgBox "Popraw dane"