Text VBA | Jak používat textovou funkci ve VBA Excel? (s příklady)

Text je funkce listu v aplikaci Excel, ale může být také použit ve VBA při použití vlastnosti range s ní, funkce pro tuto funkci je podobná funkci listu a trvá stejný počet argumentů, což jsou hodnoty, které je třeba převedený a zadaný formát čísla.

Textová funkce Excel VBA

TEXT je funkce dostupná v listu, ale bohužel se nejedná o vestavěnou funkci v aplikaci Excel VBA. Abychom měli přístup k této funkci, musíme ve VBA použít objekt třídy třídy listu. Textová funkce v aplikaci Excel převádí hodnotu na zadaný formát čísla.

Jedním z problémů s touto funkcí jsou argumenty. Kdykoli použijeme třídu funkcí listu VBA, nebudeme vidět jasnou syntaxi podobně jako v našem listu. Prostě říká „Arg1“ a „Arg2“.

  • Arg1 je hodnota, na kterou musíme použít formátování.
  • Arg2 je formátování, které musíme použít, a musíme určit formátovací kód.

Příklady textových funkcí VBA v aplikaci Excel

Níže jsou uvedeny příklady textové funkce Excel VBA.

Tuto šablonu VBA Text Excel si můžete stáhnout zde - Šablona VBA Text Excel

Příklad č. 1

Ukážu vám jednoduchý příklad TEXTU ve VBA Excel. Podívejte se na níže uvedený kód v jazyce Visual Basic.

Kód:

 Sub Text_Example1 () Dim FormattingValue jako řetězec Dim FormattingResult jako řetězec FormattingValue = 0,564 FormattingResult = WorksheetFunction.Text (FormattingValue, "hh: mm: ss AM / PM") MsgBox FormattingResult End Sub 

Nejprve jsem deklaroval dvě proměnné jako řetězec ve VBA

 Dim FormattingValue As String Dim FormattingVýsledek jako řetězec 

Pro první proměnnou jsem přidělil číslo formátování, které musíme formátovat.

FormattingValue = 0,564

Nyní pro jinou proměnnou jsem přiřadil funkci TEXT.

FormattingResult = WorksheetFunction.Text (FormattingValue, "hh: mm: ss AM / PM")

Pokud pozorujete, použil jsem formátování času, tj. „Hh: mm: ss AM / PM“

Nakonec jsem použil zprávu VBA pro zobrazení výsledku.

MsgBox FormattingResult

Když spustím funkci kódu TEXT, použije časový formát na číslo 0,564 a zobrazí výsledek níže.

Takže jsme dostali čas jako „ 13:32:10 PM “.

Příklad č. 2

Podobně jako v příkladu formátu data jsme v tomto příkladu provedli několik menších změn. Níže je uveden kód.

Kód:

 Sub Text_Example2 () Dim FormattingValue jako řetězec Dim FormattingResult jako řetězec FormattingValue = 43585 FormattingResult = WorksheetFunction.Text (FormattingValue, "DD-MMM-RRRR") MsgBox FormattingResult End Sub 

Z předchozího kódu jsem změnil hodnotu formátování z 0,565 na 43585 a změnil jsem formátovací styl jako „DD-MMM-RRRR“.

Toto použije formátování na číslo 43585 jako datum a výsledek je následující.

Použít formátování na buňky

Viděli jsme jednoduché příklady, nyní se podívejme, jak pracovat s buňkami v listu. V tomto příkladu se podívejte na níže uvedená data.

U všech těchto čísel musíme použít formát času. V tomto případě použije kód formátování.

Kód:

 Sub Text_Example3 () Dim k As Integer For k = 1 To 10 Cells (k, 2). Value = WorksheetFunction.Text (Cells (k, 1) .Value, "hh: mm: ss AM / PM") Next k End Sub 

Tento kód prochází 10 buňkami a použije formátování, jak je uvedeno níže.

Takto můžeme pomocí funkce VBA TEXT použít na buňky formátování čísel.