Diskuze: Program ve VBA
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Domácí úkoly bez tvé iniciativy řešit nikdo nebude...
If(číslo) vykonej něco
Else if(písmeno) vykonej něco jiného
End if
Omlouvám se, zapomněl jsem přiložit, co jsem se pokoušel napsat, vkládám tedy teď.
Sub main()
Dim znak As String
znak = InputBox("Zadejte znak")
If znak = "a" Or znak = "b" Then
MsgBox "Písmeno"
ElseIf znak >= 1 And znak <= 9 Then
MsgBox "Číslice"
Else
MsgBox "Jiný znak"
End If
End Sub
Jde mi o to, že nevím, jak udělat tu první podmínku tak, abych nemusel vypisovat všechny znaky abecedy.. Druhá podmínka funguje, uživatel má zadat jen jeden znak, číslo tedy rozpozná. U else zhavaruje s type mismatch, pokud zadám např. lomítko, to taky nevím, jak vyřešit. Vlastně si nejsem ani jistý, jestli má být znak nadeklarovaný jako string, když se může zadat i číslo.. Zatím děkuji a opravdu se omlouvám, ale jsem v úplných začátcích.
zeptej se strejdy gůgla na funkci isnumeric VBA a vyjede ti mnoho návodů, jak to ošetřit...
Ja by som to riešil takto nejako. Ešte som tam doplnil kontrolu na počet znakov (1). V prípade, že ich bude viac a zadáš nejaký alfanumerický, tak to vyhodnotí ako iný.
Sub main()
Dim znak As String
Do
znak = InputBox("Zadejte znak")
If Len(znak) > 1 Then MsgBox "Zadejte jenom jeden znak"
Loop While Len(znak) > 1
If Asc(znak) > 64 And Asc(znak) < 123 Then
MsgBox "Písmeno"
Else
If IsNumeric(znak) Then
MsgBox "Číslice"
Else
MsgBox "Jiný znak"
End If
End If
End Sub
Děkuju moc za rady... přidám i svůj kód, kterým jsem to v mezidobí vyřešil, a vypadá to, že v pohodě funguje (akorát tam teda není kontrola na počet znaků, díky za nápad
Sub main()
Dim znak As String
Dim cislo As Boolean
Dim pismeno As Integer
znak = InputBox("Zadejte znak")
cislo = IsNumeric(znak)
pismeno = Asc(znak)
If cislo = True Then
MsgBox "Zadali jste číslici!"
ElseIf cislo = False Then
Select Case pismeno
Case 65 To 90, 97 To 122
MsgBox "Zadali jste písmeno!"
Case 33 To 47, 58 To 64, 91 To 96, 123 To 126
MsgBox "Zadali jste jiný znak!"
End Select
End If
End Sub
Zobrazeno 6 zpráv z 6.