Hoe gebruik ik de vba-spreadsheetfunctie?
Belangrijkste opmerkingen
- U kunt de eigenschap WorksheetFunction gebruiken om toegang te krijgen tot werkbladfuncties voor gebruik in een macro.
Hoe u een werkbladfunctie in VBA gebruikt bij het schrijven van een macro
Gebruik de volgende stappen om een werkbladfunctie in VBA te gebruiken.
- Geef eerst de cel op waarin u de waarden wilt invoegen die door de functie worden geretourneerd.
- Gebruik daarna een gelijkteken (=) en typ Application.WorksheetFunction (zoals u al kunt doen in de Excel-toepassing, kunt u alleen WorksheetFunction gebruiken).
- Vervolgens moet u een punt (.) invoeren, en zodra u dat doet, krijgt u een lijst met functies die u in de spreadsheet heeft.
- Laten we vanaf hier de functie TextJoin gebruiken om de tekst in de cellen A1 en B1 samen te voegen. Zo gebruik je een functie in het spreadsheet; wanneer u beginhaakjes invoert, worden de argumenten weergegeven die u in de cel moet opgeven.
- Zoals je in de bovenstaande schermafbeelding kunt zien, wordt het argument weergegeven dat je moet opgeven, maar niet de naam van het argument. Je moet dus de argumenten kennen voordat je ze gebruikt. Dit zijn de argumenten die u in TextJoin moet gebruiken.
- Laten we nu argumenten in de functie invoeren.
- afbakenen: » «
- negeer_empty: waar
- tekst1: Bereik (“A1”)
- tekst2: Bereik(“B1”)
Hier is de volledige code.
Sub MyMacro() Range("A1") = _ Application.WorksheetFunction.TextJoin _ (" ", True, Range("A2"), Range("A3")) End Sub
Er zijn in totaal 387 werkbladfuncties die u in VBA kunt gebruiken. Maar er zijn enkele functies (bijvoorbeeld: LEFT ) die niet beschikbaar zijn.
Reden? Er zijn ingebouwde functies in VBA die u kunt gebruiken bij het schrijven van VBA-code. Laten we eens kijken of u een berichtvenster wilt gebruiken om de waarde van een functie op te halen. Stel dat u de maximale waarde wilt verkrijgen van het bereik met de naam ‘myValues’.
De code zou zijn:
Sub MyMacro() MsgBox Prompt:=WorksheetFunction.Max(Range("myValues")) End Sub
En zo krijg je een berichtenvenster:
Application.WorksheetFunction versus applicatie
Er zijn twee verschillende manieren om naar een werkbladfunctie te verwijzen. Hieronder staan de twee verschillende coderegels die dezelfde activiteit uitvoeren.
Sub MyMacro() MsgBox Prompt:= _ Application.WorksheetFunction.Max(Range("myValues")) MsgBox Prompt:= _ Application.Max(Range("myValues")) End Sub
Maar er is een voordeel aan het gebruik van de tweede methode. Het retourneert een foutcode in plaats van de fout direct weer te geven.