Deze zelfstudie laat zien hoe u de tekstfunctie in VBA kunt gebruiken.
De functie Tekst wordt in een Excel-werkblad gebruikt om een gedeelte van een tekenreeks in een opgegeven formaat te retourneren. De functie Tekst is geen VBA-functie, maar kan in VBA worden gebruikt door te verwijzen naar het object Werkbladfunctie.
WerkbladFunctie.Tekst
De syntaxis in VBA zou daarom als volgt zijn:
=WerkbladFunctie.Tekst (Arg1, Arg2)
waarbij Arg1 de originele tekenreeks is en Arg2 het formaat is van de tekenreeks die we willen retourneren.
1234567 | SubtestWSFunctie()Dim dte As StringDim strD As Stringdte = "08/05/2021"strD= WorksheetFunction.Text(dte, "mmmm")MsgBox strDEinde sub |
In het bovenstaande voorbeeld slaat de stringvariabele dte een datum op. De functie Tekst retourneert vervolgens het maandgedeelte van de datum.
Getallen opmaken met de tekstfunctie
We kunnen de tekstfunctie gebruiken om getallen in onze VBA-code op te maken.
1234567 | SubformaatValuta()Dim strNum As StringDim strFormaat als stringstrNum = "75896.125"strFormat = WerkbladFunctie.Text(strNum, "$#,##0.00")MsgBox strFormaatEinde sub |
De tekenreeks die in het bovenstaande voorbeeld wordt geretourneerd, is $ 75.896,13.
Andere voorbeelden van getalnotatie met behulp van de tekstfunctie zijn:
12345678 | =WerkbladFunctie.Text(75896.125, "0")dit komt terug: "75896"=WerkbladFunctie.Text(75896.125, "0.0")dit komt terug: "75896.1"=WerkbladFunctie.Text(75896.125, "#,##0")dit komt terug: "75,896" |
Excel heeft echter wel een ingebouwde VBA-functie die we kunnen gebruiken in plaats van de tekstfunctie als we datums en getallen binnen VBA willen opmaken. Dit staat bekend als de functie Opmaak.
De VBA-formaatfunctie
Door het bovenstaande voorbeeld te gebruiken, in plaats van WorksheetFunction.Text te gebruiken, kunnen we gewoon de Format Function gebruiken om dezelfde resultaten te bereiken.
12345678 | =Formaat(75896.125; "0")dit komt terug: "75896"=Formaat(75896.125; "0.0")dit komt terug: "75896.1"=Formaat(75896.125; "#,##0")dit komt terug: "75,896" |
Op dezelfde manier kunnen we de functie Opmaak gebruiken om datumgedeelten van een tekenreeks op te maken.
1234567 | Sub TestFormaatFunctie()Dim dte As StringDim strD As Stringdte = "08/05/2021"strD= Formaat (dte, "mmmm")MsgBox strDEinde sub |