Textul este o funcție de foaie de lucru în Excel, dar poate fi utilizat și în VBA în timp ce se utilizează proprietatea intervalului, funcția pentru această funcție este similară cu funcția de foaie de lucru și are același număr de argumente care sunt valorile convertite și un format de număr specificat.
Funcția de text Excel VBA
TEXT este funcția disponibilă cu foaia de lucru, dar, din păcate, nu este o funcție încorporată în Excel VBA. Pentru a accesa această funcție, trebuie să folosim obiectul clasei funcției foii de lucru în VBA. Funcția de text din Excel convertește o valoare într-un format de număr specificat.
Una dintre problemele cu această funcție ca argumente. Ori de câte ori folosim clasa de funcții a foii de lucru VBA, nu ajungem să vedem sintaxa clară la fel ca în foaia noastră de lucru. Spune doar „Arg1” și „Arg2”.
- Arg1 este valoarea la care trebuie să aplicăm formatarea.
- Arg2 este formatarea pe care trebuie să o aplicăm și trebuie să specificăm codul de formatare.
Exemple de funcții de text VBA în Excel
Mai jos sunt exemple de funcții de text Excel VBA.
Exemplul nr. 1
Permiteți-mi să vă arăt un exemplu simplu de TEXT în VBA Excel. Uită-te la codul de mai jos în Visual Basic.
Cod:
Sub Text_Example1 () Dim FormattingValue As String Dim FormattingResult As String FormattingValue = 0,564 FormattingResult = WorksheetFunction.Text (FormattingValue, "hh: mm: ss AM / PM") MsgBox FormattingResult End Sub
În primul rând, am declarat două variabile ca un șir în VBA.
Dim FormattingValue as String Dim FormattingResultat ca șir
Pentru prima variabilă, am atribuit numărul de formatare, pe care trebuie să îl formatăm.
FormattingValue = 0,564
Acum, pentru o altă variabilă, am atribuit funcția TEXT.
FormattingResult = WorksheetFunction.Text (FormattingValue, "hh: mm: ss AM / PM")
Dacă observați, am aplicat formatarea timpului, adică „hh: mm: ss AM / PM”.
Apoi, în cele din urmă, am aplicat o casetă de mesaj VBA pentru a afișa rezultatul.
MsgBox FormattingResult
Când rulez codul, funcția TEXT va aplica formatul orei la numărul 0,564 și va afișa rezultatul după cum urmează.
Deci, am obținut timpul ca „ 01:32:10 PM ”.
Exemplul nr. 2
Similar cu exemplul formatului de dată, am făcut câteva modificări minore în acest exemplu. Mai jos este codul.
Cod:
Sub Text_Example2 () Dim FormattingValue As String Dim FormattingResult As String FormattingValue = 43585 FormattingResult = WorksheetFunction.Text (FormattingValue, "DD-MMM-YYYY") MsgBox FormattingResult End Sub
Din codul anterior, am schimbat valoarea de formatare de la 0,565 la 43585 și am schimbat stilul de formatare ca „ZZ-MMM-AAAA”.
Aceasta va aplica formatarea la numărul 43585 ca dată, iar rezultatul este după cum urmează.
Aplicați formatarea la celule
Am văzut exemple simple. Acum, uitați-vă cum să lucrați cu celulele dintr-o foaie de lucru. Pentru acest exemplu, consultați datele de mai jos.
Pentru toate aceste numere, trebuie să aplicăm formatul orei. Acest cod va aplica formatarea.
Cod:
Sub Text_Example3 () Dim k Întreg pentru k = 1 până la 10 celule (k, 2). Valoare = Foaie de lucruFuncție.Text (Celule (k, 1). Valoare, "hh: mm: ss AM / PM") Următorul k Sfârșit Sub
Acest cod va parcurge 10 celule și va aplica formatarea de mai jos.
Astfel, folosind funcția VBA TEXT, putem aplica formatarea numerelor la celule.