Ta vadnica bo pokazala, kako uporabljati funkcijo besedila v VBA.
Funkcija Besedilo se uporablja na Excelovem delovnem listu za vrnitev dela niza v določeni obliki. Funkcija Text ni funkcija VBA, vendar jo je mogoče uporabiti v VBA s sklicevanjem na objekt Funkcija delovnega lista.
Delovni listFunction.Text
Sintaksa v VBA bi bila torej naslednja:
= Delovni listFunction.Text (Arg1, Arg2)
kjer je Arg1 izvirni niz in Arg2 je format niza, ki ga želimo vrniti.
1234567 | Pod test WSFunction ()Dim dte kot nizZatemni strD kot nizdte = "08/05/2021"strD = Funkcija delovnega lista.Text (dte, "mmmm")MsgBox strDEnd Sub |
V zgornjem primeru nizovna spremenljivka dte shranjuje datum. Funkcija Besedilo nato vrne mesečni del datuma.
Oblikovanje številk s funkcijo besedila
Funkcijo besedila lahko uporabimo za oblikovanje številk v kodi VBA.
1234567 | PodoblikaValuta ()Zatemni strNum kot nizZatemni strFormat kot nizstrNum = "75896.125"strFormat = Delovni listFunction.Text (strNum, "$#, ## 0.00")MsgBox strFormatEnd Sub |
Niz, vrnjen v zgornjem primeru, bi bil 75.896,13 USD.
Drugi primeri oblikovanja številk s funkcijo besedila so:
12345678 | = Delovni listFunction.Text (75896.125, "0")to se bo vrnilo: "75896"= Delovni listFunction.Text (75896.125, "0.0")to se bo vrnilo: "75896,1"= Delovni listFunction.Text (75896.125, "#, ## 0")to se bo vrnilo: "75,896" |
Vendar ima Excel vgrajeno funkcijo VBA, ki jo lahko uporabimo namesto funkcije Besedilo, če želimo oblikovati datume in številke v VBA. To je znano kot funkcija Oblikovanje.
Funkcija oblikovanja VBA
Če vzamemo zgornji primer, namesto da uporabimo WorksheetFunction.Text, lahko za dosego istih rezultatov uporabimo samo funkcijo Format.
12345678 | = Oblika (75896.125, "0")to se bo vrnilo: "75896"= Oblika (75896.125, "0.0")to se bo vrnilo: "75896,1"= Oblika (75896.125, "#, ## 0")to se bo vrnilo: "75,896" |
Podobno lahko s funkcijo oblikovanja oblikujemo datumske dele niza.
1234567 | Sub TestFormatFunction ()Dim dte kot nizZatemni strD kot nizdte = "08/05/2021"strD = Oblika (dte, "mmmm")MsgBox strDEnd Sub |