Een van de krachtigste functies van Microsoft Excel is "Doelzoeken"--het vermogen te vinden van een waarde voor een cel die een bepaalde resultaat in een andere cel oplevert. Normaal gesproken vindt u Doelzoeken in het menu "Data" of "Lint" tabblad, maar als u wilt uitvoeren Doelzoeken veel tijden, kunt u mogelijk te besparen een hoop tijd door met een Visual Basic for Applications (VBA)-macro te automatiseren. Gelukkig, Doelzoeken is volledig geïntegreerd in VBA, zodat het schrijven van een macro om het te gebruiken eenvoudig is.
Open het Excel-document waarin u wenst om uw Doelzoeken macro te starten.
Vinden de twee cellen die u wilt gebruiken voor het Doelzoeken. De eerste moet de cel waarvoor u een vaste doel hebt. De tweede moet een cel u toestaan dat Excel wijzigen om te voldoen aan dat doel. Waarde van de eerste cel moet een formule die is gebaseerd op de tweede cel--anders, ongeacht welke veranderingen Excel op de tweede cel maakt, geen veranderingen zal verschijnen in de eerste.
Open het venster Macro. In Excel 2007 of hoger, dit doen door op het tabblad "Weergave" van het lint te klikken en vervolgens te klikken op "Macro's." In eerdere versies van Excel, klikt u op het menu "Extra", kies "Macro", en kies vervolgens "Macro's."
Typ een naam voor uw macro Doelzoeken in het macrovenster klikt, en klik op "Maken." Dit zal lanceren de editor Visual Basic for Applications en tonen u de tekst van de nieuwe Macro, die als er wordt een lege subroutine uitzien beginnen zal:
Sub MyMacroName()
End SubMaak een Range-object dat vertegenwoordigt de cel waarvoor u een bekende doel (de eerste cel uit stap 2) hebt. Bijvoorbeeld, als u Doelzoeken cel A1 willen zou, schrijven:
Dim goalCell As Range
goalCell = ThisWorkbook.Worksheet(1). Range("a1")Maak een Range-object dat vertegenwoordigt van de cel die u Excel wilt te wijzigen als u wilt dat de eerste cel om de bekende doel te bereiken. Bijvoorbeeld, als u Excel voor het manipuleren van cel A2, schrijven:
Dim variableCell As Range
variableCell = ThisWorkbook.Worksheet(1). Range("a2")De methode GoalSeek roep van de cel van de doel bereik. Als het eerste argument, bieden de waarde die u het Doelzoeken wilt Als het tweede argument, bieden de variabele celbereik. Bijvoorbeeld, als u Doelzoeken op 0 willen zou, schrijven:
goalCell.GoalSeek (0, variableCell)
- Omdat Visual Basic zo krachtig is, fouten in VB macro's kunnen gemakkelijk veroorzaken veel schade aan uw spreadsheet. Zorg ervoor dat een back-up van uw spreadsheet opslaan voordat u een nieuwe macro uitproberen.