na jednoslovné názvy miest z vety, kedy mesto sa nachádza na konci reťazca, napr. takto:
Function PoslSlovo(Veta As String) As String
Dim mySplit As Variant
mySplit = Split(StrReverse(Veta), " ")
PoslSlovo = StrReverse(mySplit(0))
End Function ale je to etuda len na inšpiráciu, rozhodne to nebude funkčné, pokiaľ bude za názvom mesta ešte čosi, alebo názov mesta bude viacslovný
edit: Za predpokladu, že mesto bude uvedené na konci a bude mu predchádzať PSČ, šlo by to i takto (a spôsobov je rozhodne ďaleko viac; i natívnymi funkciami excelu, ale cez VBA mi toto príde vyriešiť rýchlejšie):
Function MestoNaKonci(Veta As String) As String
Dim mySplit As Variant, i As Integer
mySplit = Split(Veta, " ")
For i = UBound(mySplit) To LBound(mySplit) Step -1
If IsNumeric(mySplit(i)) Then
Exit For
Else: MestoNaKonci = mySplit(i) & " " & MestoNaKonci
End If
Next i
End Function
príklad iného typu cyklu:
Function MestoNaKonciInak(Veta As String) As String
Dim mySplit As Variant, i As Byte
mySplit = Split(Veta, " ")
i = UBound(mySplit)
Do While Not IsNumeric(mySplit(i))
MestoNaKonciInak = mySplit(i) & " " & MestoNaKonciInak
i = i - 1
Loop
End Functioncitovat