Excel VBA-tekstfunctie
VBA-tekstfunctie wordt alleen gebruikt in VBA. Het lijkt erop dat het de getallen omzet in tekst. Maar in werkelijkheid converteert het getallen naar elk formaat zoals Tijd, Datum of nummerbereik. Hiervoor moeten we toestaan dat deze functie als Klasse wordt ingeschakeld.
Als we het argument van VBA-tekst zien, zien we dat het bestaat uit Arg1 en Arg2 zoals hieronder weergegeven.
- Arg1 - Hier zullen we de waarde die we willen converteren in het standaardformaat plaatsen.
- Arg2 - En hier selecteren we het formaat waarin we de uitvoer willen zien aankomen.
Beide variabelen worden gedefinieerd als String.
Hoe Excel VBA-tekstfunctie te gebruiken?
We zullen leren hoe een VBA-tekstfunctie te gebruiken met een paar voorbeelden in Excel.
U kunt deze VBA-tekst Excel-sjabloon hier downloaden - VBA-tekst Excel-sjabloonVBA-tekstfunctie - Voorbeeld # 1
We zullen de tekst of getallen in alle komende voorbeelden op verschillende manieren in het standaardformaat omzetten.
Volg de onderstaande stappen om de tekstfunctie in VBA te gebruiken.
Stap 1: Open een module die beschikbaar is op het menutabblad Invoegen zoals hieronder wordt weergegeven.
Stap 2: Schrijf in de geopende VBA-module de subprocedure van VBA-tekst zoals hieronder weergegeven.
Code:
Sub VBA_Text1 () End Sub
Stap 3: Volgens de syntaxis van VBA-tekst zijn er twee argumenten die we nodig hebben. Dus definieer de eerste variabele als String waar we de invoer zullen geven zoals hieronder getoond.
Code:
Sub VBA_Text1 () Dim Input1 As String End Sub
Stap 4: Definieer nu een andere variabele waar we de uitvoer van krijgen. En dit zou ook als String zijn.
Code:
Sub VBA_Text1 () Dim Input1 As String Dim Output As String End Sub
Stap 5: Overweeg nu elk willekeurig getal dat we moeten converteren naar het standaardformaat. Dit kan het nummer zijn dat we willen zien of het kan een willekeurig nummer zijn. Stel dat we een decimaal getal van 0.123 overwegen en kijken wat we zouden krijgen.
Code:
Sub VBA_Text1 () Dim Input1 As String Dim Output As String Input1 = 0.123 Einde Sub
Stap 6: Nu in de andere gedefinieerde variabele die Output is, zullen we deze gebruiken voor het plaatsen van VBA-tekst. Nu zal deze functie worden gebruikt als werkbladfunctie zoals hieronder getoond.
Stap 7: Selecteer de VBA-tekstfunctie in de ingebouwde functielijst. Nu zullen we volgens de syntaxis onze variabele en indeling gebruiken waarin we dat willen converteren als Arg1-standaardindeling zoals waarin we dat geselecteerde getal willen converteren.
Code:
Sub VBA_Text1 () Dim Input1 As String Dim Output As String Input1 = 0.123 Output = WorksheetFunction.Text (End Sub
Stap 8: In de Arg1 schrijven we de Input1-variabele met ons nummer dat we moeten converteren en Arg2 heeft de indeling HH: MM: SS AM / PM.
Code:
Sub VBA_Text1 () Dim Input1 As String Dim Output As String Input1 = 0.123 Output = WorksheetFunction.Text (Input1, "hh: mm: ss AM / PM") End Sub
Stap 9: Gebruik nu MsgBox om te zien wat er als Output komt.
Code:
Sub VBA_Text1 () Dim Input1 As String Dim Output As String Input1 = 0.123 Output = WorksheetFunction.Text (Input1, "hh: mm: ss AM / PM") MsgBox Output End Sub
Stap 10: Voer nu de code uit door op F5 te drukken of door op de knop Afspelen te klikken. We zullen het berichtenvak met een bericht ontvangen als 02:57:07 AM .
We zullen een andere keer zien als we een ander nummer kiezen.
Stap 11: Laten we nu het invoernummer wijzigen als 12345 en het formaat van de uitvoer in DD-MMM-JJJJ wijzigen zoals hieronder weergegeven.
Code:
Sub VBA_Text2 () Dim Input1 As String Dim Output As String Input1 = 12345 Output = WorksheetFunction.Text (Input1, "DD-MM-jjjj") MsgBox Output End Sub
Stap 12: Voer de code nu opnieuw uit. We krijgen de datum als 18 oktober 1933
Als we het exacte aantal kennen waarmee we een exacte datum of tijd kunnen krijgen, is dat beter.
VBA-tekstfunctie - Voorbeeld # 2
Er is nog een directe manier om VBA-tekst toe te passen. Hiervoor zullen we enkele nummers in het Excel-blad invoeren, zoals hieronder getoond.
Volg de onderstaande stappen om de tekstfunctie in VBA te gebruiken.
Stap 1: Schrijf in een module de subcategorie van VBA-tekst zoals hieronder weergegeven.
Code:
Sub VBA_Text3 () Einde Sub
Stap 2: Selecteer het cellenbereik waar we de uitvoer willen zien. Laten we eens kijken dat die cellen van B1 tot B5 zijn.
Code:
Sub VBA_Text3 () Bereik ("B1: B5"). Waarde Einde Sub
Stap 3: Selecteer nu het cellenbereik dat we moeten converteren. Hier is dat bereik van cel A1 tot A5 samen met de werkbladfunctie.
Code:
Sub VBA_Text3 () Bereik ("B1: B5"). Waarde = bereik ("A1: A5"). Werkblad. Einde Sub
Stap 4: Selecteer de Index-functie door deze te evalueren.
Code:
Sub VBA_Text3 () Bereik ("B1: B5"). Waarde = bereik ("A1: A5"). Werkblad.Evalueren ("INDEX (End Sub
Stap 5: Overweeg nu de functie Tekst en selecteer het bereik dat we moeten converteren. En het formaat moet in meerdere nullen zijn.
Code:
Sub VBA_Text3 () Bereik ("B1: B5"). Waarde = bereik ("A1: A5"). Werkblad.Evalueren ("INDEX (TEXT (A1: A5, " "'000000" "), )") Einde Sub
Stap 6: Voer nu de code uit door op F5 te drukken of door op de knop Afspelen te klikken. We zullen zien dat de beschikbare getallen in kolom A nu zijn omgezet in tekst met meerdere nullen, wat leidt tot getallen van 6 cijfers in kolom B.
Laten we nu eens kijken wat er zou gebeuren als we het uitvoerformaat opnieuw veranderen van voorloopnullen naar tijdformaat.
Stap 7: Zet in Arg2 tijdnotatie als HH: MM: SS en wijzig de uitvoerbereikcel in C1 tot C5 zonder de uitvoer van de vorige code te verstoren.
Code:
Sub VBA_Text3 () Bereik ("C1: C5"). Waarde = bereik ("C1: C5"). Werkblad.Evalueren ("INDEX (TEXT (A1: A5, " "hh: mm: ss" ")))" ) Einde Sub
Stap 8: Voer de code opnieuw uit. We zullen zien dat kolom C wordt gevuld met de standaardtijdnotatie.
Laten we een ander experiment proberen.
Stap 9: Hierin zullen we het uitvoercelbereik wijzigen van D1 naar D5, waar we de VBA-tekst zullen zien. En verander de Arg2, in datumnotatie die DD-MMM-JJJJ is, zoals hieronder getoond.
Code:
Sub VBA_Text3 () Bereik ("D1: D5"). Waarde = bereik ("D1: D5"). Werkblad. Evalueren ("INDEX (TEXT (A1: A5, " "DD-MMM-YYYY" "), )" ) Einde Sub
Stap 10: Voer de code opnieuw uit. Deze keer zullen we zien, de datum zal te zien zijn in kolom D. En die datums zijn in het formaat dat of DD-MMM-JJJJ formaat.
Dit is hoe we de getallen kunnen wijzigen in elk standaardformaat dat we willen.
Voors en tegens van Excel VBA-tekstfunctie
- Dit is eenvoudig te implementeren.
- We kunnen de getallen in elk formaat wijzigen dat we willen zien.
- We kunnen geen tekst converteren naar de vereiste getalnotatie.
Dingen om te onthouden
- VBA-tekst converteert alleen getallen in getallen. Maar het formaat van getallen zal het standaardformaat zijn, zoals Datum, Tijd, de combinatie van Datum en Tijd of een reeks cijfers.
- Als u de getallen toepast en wijzigt in een notatie van voorafgaande nullen, plaatst u de apostrof vóór de nullen. Zodat getallen worden omgezet in tekst en de nullen verschijnen.
- Als we proberen tekst om te zetten met VBA-tekst, geeft de uitvoer alleen de tekst weer.
- Om de exacte uitvoer te krijgen, moeten we de combinatie van getallen kennen die de exacte tijd en datum bieden die we willen zien.
- Als u klaar bent, slaat u de volledige code altijd op in het formaat Macro-Ingeschakeld, zodat de code niet verloren gaat.
Aanbevolen artikelen
Dit is een handleiding voor VBA-tekstfunctie. Hier bespreken we hoe u de tekstfunctie in Excel VBA kunt gebruiken, samen met praktische voorbeelden en een downloadbare Excel-sjabloon. U kunt ook onze andere voorgestelde artikelen doornemen -
- Kopieer en plak functie in VBA
- Substring Excel-functie
- VBA-subscript buiten bereik
- Excel ISNUMBER Formula