zpět na výpis    domů » excel » Textové funkce ve VBA

Textové funkce ve VBA

Publikováno: 7.7.2017

Textové funkce ve VBA

V této kapitole se naučíte, jak zjistit délku textového řetězce, jak vyhledávat znaky v řetězcích a jak získat pouze část řetězce.

Délka textového řetězce

Délku textového řetězce lze zjistit použitím funkce Len().

Následující procedura vypíše v okně Immediate počet znaků v řetězci.

Option Explicit

Sub delkaRetezce()

deklarace proměnné
Dim retezec As String

retezec = "Ahoj světe!"

Debug.Print Len(retezec)

End Sub

V následujícím příkladě procedura vyhledá prázdné buňky v databázi našich zákazníků. První sloupec je Identifikační číslo zákazníka a ve druhém sloupci je Název zákazníka. Databáze je však neudržovaná a některé názvy nejsou k dispozici. Cílem procedury je vyhledat prázdnou buňku ve sloupci Název zákazníka a do sousední buňky vložit text N/A (Not Available) plus vypsat počet prázdných buněk v dialogovém okně.

Option Explicit

Sub zakaznici()

deklarace proměnných
Dim i As Long, posledniradek As Long
Dim pocet As Long

zjištění posledního řádku ve sloupci A a nastaveni proměnné pocet na počáteční hodnotu 0
posledniradek = Cells(Rows.Count, "A").End(xlUp).Row
pocet = 0

výpis textů OK nebo N/A a zjištění počtu prázdných buněk
For i = 1 To posledniradek
    If Len(Cells(i, 2)) > 0 Then
      Cells(i, 3).Offset() = "OK"
    Else
      Cells(i, 3).Offset() = "N/A"
      pocet = pocet + 1
    End If
Next i

vypis počtu prázdných buněk ve sloupci Název zákazníka v dialogovém okně
MsgBox pocet

End Sub

Úprava textových řetězců

V této části textových funkcí je použita kombinace funkcí InStr() a Left().

Textová funkce InStr() je funkce, která dokáže vyhledat pozici hledaného znaku v řetězci.

Na úpravu textových řetězců se používají funkce Left(), Right() a Mid(). Funkce Left() vrací specifikovaný počet znaků řetězce zleva. Analogicky fungují ostatní uvedené funkce.

Následující procedura vyhledá v řetězcích první mezeru a odsekne zleva první slovo.

Option Explicit

Sub upravaretezce()

deklarace proměnných
Dim i As Long, posledniradek As Long, pozice As Long
Dim odseknuti As String

zjištění počtu řádků
posledniradek = Cells(Rows.Count, "A").End(xlUp).Row

cyklus vyhledá pozici první mezery ve sloupci A a odsekne první slovo zleva
For i = 1 To posledniradek
  pozice = InStr(Cells(i, 1), " ")
  odseknuti = Left(Cells(i, 1), pozice)
  Cells(i, 2).Value = odseknuti
Next i

End Sub

Chcete vědět o každém novém článku? Dejte Like Financím v praxi na sociálních sítích a zůstaňte ve spojení.

Google+

Sdílejte článek na sociálních sítích

Nahoru