VBA-text

Text är en kalkylfunktion i Excel men den kan också användas i VBA när du använder intervallegenskapen med den, funktionen för den här funktionen liknar kalkylbladets funktion och det tar samma antal argument som är de värden som måste vara konverterat och ett specificerat nummerformat.

Excel VBA-textfunktion

TEXT är funktionen som är tillgänglig med kalkylblad men tyvärr är den inte en inbyggd funktion i Excel VBA. För att komma åt den här funktionen måste vi använda kalkylbladets funktionsklassobjekt i VBA. Textfunktion i Excel konverterar ett värde till ett angivet nummerformat.

Ett av problemen med denna funktion är argument. När vi använder VBA-kalkylbladets funktionsklass får vi inte se den tydliga syntaxen som i vårt kalkylblad. Det står bara "Arg1" och "Arg2".

  • Arg1 är det värde vi behöver använda formateringen på.
  • Arg2 är den formatering vi behöver tillämpa och vi måste ange formateringskoden.

Exempel på VBA-textfunktion i Excel

Nedan följer exemplen på Excel VBA Text Function.

Du kan ladda ner VBA Text Excel-mall här - VBA Text Excel-mall

Exempel nr 1

Låt mig visa dig ett enkelt exempel på TEXT i VBA Excel. Titta på koden nedan i Visual Basic.

Koda:

 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 Sub 

För det första har jag förklarat två variabler som en sträng i VBA

 Dim DimattingValue As String Dim FormattingResult As String 

För den första variabeln har jag tilldelat formateringsnumret som vi behöver formatera.

Formateringsvärde = 0,564

Nu har jag tilldelat TEXT-funktionen för en annan variabel.

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

Om du observerar har jag tillämpat tidsformateringen, dvs “hh: mm: ss AM / PM”

Sedan har jag äntligen applicerat en VBA-meddelanderuta för att visa resultatet.

MsgBox FormattingResult

När jag kör koden använder TEXT-funktionen tidsformat på siffran 0.564 och visar resultatet enligt nedan.

Så vi fick tiden som ” 01:32:10 PM ”.

Exempel 2

I likhet med datumformatsexemplet har vi gjort några mindre ändringar i detta exempel. Nedan är koden.

Koda:

 Sub Text_Example2 () Dim FormattingValue As String Dim FormattingResult As String FormattingValue = 43585 FormattingResult = WorksheetFunction.Text (FormattingValue, "DD-MMM-YYYY") MsgBox FormattingResult End Sub Sub 

Från den föregående koden har jag ändrat formateringsvärdet från 0,565 till 43585 och ändrat formateringsstilen som “DD-MMM-ÅÅÅÅ”.

Detta kommer att tillämpa formateringen på numret 43585 som datum och resultatet blir som följer.

Använd formatering på celler

Vi har sett enkla exempel, titta nu på hur man arbetar med celler i ett kalkylblad. För detta exempel, se nedanstående data.

För alla dessa siffror måste vi tillämpa tidsformatet. För detta nedan använder koden formateringen.

Koda:

 Undertext_exempel3 () Dim k som heltal För k = 1 till 10 celler (k, 2) .Value = WorksheetFunction.Text (Cells (k, 1) .Value, "hh: mm: ss AM / PM") Next k End Sub 

Den här koden kommer att slinga igenom 10 celler och tillämpa formateringen enligt nedan.

Så här, med hjälp av VBA TEXT-funktionen kan vi tillämpa nummerformatering på cellerna.