VBA-tekst - Hoe tekstfunctie te gebruiken in VBA Excel? (met voorbeelden)

Inhoudsopgave

Tekst is een werkbladfunctie in Excel, maar het kan ook in VBA worden gebruikt terwijl je de bereikeigenschap ermee gebruikt, de functie voor deze functie is vergelijkbaar met de werkbladfunctie en er zijn hetzelfde aantal argumenten voor nodig, wat de waarden zijn die moeten worden geconverteerd en een gespecificeerd getalformaat.

Excel VBA-tekstfunctie

TEXT is de functie die beschikbaar is met een werkblad, maar helaas is het geen ingebouwde functie in Excel VBA. Om toegang te krijgen tot deze functie, moeten we het werkbladfunctieklasseobject in VBA gebruiken. De tekstfunctie in Excel converteert een waarde naar een opgegeven getalnotatie.

Een van de problemen met deze functie als argumenten. Telkens wanneer we de VBA-werkbladfunctieklasse gebruiken, krijgen we de duidelijke syntaxis niet te zien zoals in ons werkblad. Er staat alleen "Arg1" en "Arg2".

  • Arg1 is de waarde waarop we de opmaak moeten toepassen.
  • Arg2 is de opmaak die we moeten toepassen, en we moeten de opmaakcode specificeren.

Voorbeelden van VBA-tekstfunctie in Excel

Hieronder staan ​​de voorbeelden van Excel VBA-tekstfunctie.

Voorbeeld 1

Ik zal u een eenvoudig voorbeeld van TEXT in VBA Excel laten zien. Bekijk de onderstaande code in Visual Basic.

Code:

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

Ten eerste heb ik twee variabelen gedeclareerd als een string in VBA.

Dim FormattingValue As String Dim FormattingResult As String

Voor de eerste variabele heb ik het opmaaknummer toegewezen, dat we moeten opmaken.

FormattingValue = 0,564

Nu heb ik voor een andere variabele de TEXT-functie toegewezen.

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

Als je opmerkt, heb ik de opmaak van de tijd toegepast, dwz "uu: mm: ss AM / PM."

Ten slotte heb ik een VBA-berichtvenster toegepast om het resultaat te tonen.

MsgBox FormattingResult

Wanneer ik de code TEXT-functie uitvoer, wordt het tijdformaat toegepast op het getal 0,564 en wordt het resultaat weergegeven zoals hieronder.

Dus we kregen de tijd als “ 01:32:10 PM ”.

Voorbeeld 2

Vergelijkbaar met het datumnotatie-voorbeeld, hebben we enkele kleine wijzigingen aangebracht in dit voorbeeld. Hieronder staat de code.

Code:

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

Van de vorige code heb ik de opmaakwaarde gewijzigd van 0,565 in 43585 en de opmaakstijl gewijzigd in "DD-MMM-JJJJ."

Dit past de opmaak toe op het nummer 43585 als de datum en het resultaat is als volgt.

Pas opmaak toe op cellen

We hebben eenvoudige voorbeelden gezien. Kijk nu hoe u met cellen in een werkblad kunt werken. Bekijk voor dit voorbeeld de onderstaande gegevens.

Voor al deze getallen moeten we het tijdformaat toepassen. Deze code past de opmaak toe.

Code:

Sub Text_Example3 () Dim k As Integer For k = 1 to 10 Cells (k, 2) .Value = WorksheetFunction.Text (Cells (k, 1) .Value, "hh: mm: ss AM / PM") Volgende k End Sub

Deze code loopt door 10 cellen en past de onderstaande opmaak toe.

Op deze manier kunnen we met behulp van de VBA TEXT-functie nummeropmaak op de cellen toepassen.

Interessante artikelen...