De macro OnEntry gebruiken om een lopend totaal te maken in een celopmerking in Excel
Samenvatting
In Microsoft Excel kunt u kringverwijzingen voorkomen wanneer u een lopend totaal maakt door het resultaat op te slaan in een niet-berekenend deel van een werkblad. Dit artikel bevat een voorbeeld van een Microsoft Visual Basic for Applications-procedure die dit doet door een lopend totaal op te slaan in een celopmerking.
Meer informatie
Microsoft verstrekt programmeervoorbeelden alleen ter illustratie, zonder expliciete of impliciete garantie. daaronder mede begrepen, maar niet beperkt tot impliciete garanties met betrekking tot de verkoopbaarheid en/of geschiktheid voor een bepaald doel. In dit artikel wordt ervan uitgegaan dat u bekend bent met de programmeertaal VBScript, alsmede met de hulpprogramma's waarmee procedures worden gemaakt en waarmee fouten in procedures worden opgespoord. U kunt desgewenst contact opnemen met Microsoft Product Support Services voor uitleg over de functie van een bepaalde procedure. Microsoft Product Support Services is echter niet bereid de voorbeelden aan te passen om extra functies toe te voegen of om procedures te maken die aan uw specifieke eisen voldoen.
Een lopend totaal maken in een cel
Open een nieuwe werkmap in Microsoft Excel.
Start de Visual Basic-Editor (druk op Alt+F11).
Klik in het menu Invoegen op Module.
Typ de volgende macro's in deze module:
' The Auto_Open name forces this macro to run every time ' the workbook containing this macro is opened. Sub Auto_Open() ' Every time a cell's value is changed, ' the RunningTotal macro runs. Application.OnEntry = "RunningTotal" End Sub '---------------------------------------------------------- ' This macro runs each time the value of a cell changes. ' It adds the current value of the cell to the value of the ' cell comment. Then it stores the new total in the cell comment. Sub RunningTotal() On Error GoTo errorhandler ' Skip cells that have no comment. With Application.Caller ' Checks to see if the cell is a running total by ' checking to see if the first 4 characters of the cell ' comment are "RT= ". NOTE: there is a space after the equal ' sign. If Left(.Comment.Text, 4) = "RT= " Then ' Change the cell's value to the new value in the cell ' plus the old total stored in the cell comment. RT = .Value + Right(.Comment.Text, Len(.Comment.Text) - 4) .Value = RT ' Store the new total in the cell note. .Comment.Text Text:="RT= " & RT End If End With Exit Sub ' Skip over the errorhandler routine. errorhandler: ' End the procedure if no comment in the cell. Exit Sub End Sub '-------------------------------------------------------------- ' This macro sets up a cell to be a running total cell. Sub SetComment() With ActiveCell ' Set comment to indicate that a running total is present. ' If the ActiveCell is empty, multiplying by 1 will ' return a 0. .AddComment .Comment.Text Text:="RT= " & (ActiveCell * 1) End With End Sub
Nadat u de macro's hebt getypt, klikt u in het menu Bestand op Sluiten en terugkeren naar Microsoft Excel.
Sla de werkmap op en sluit de werkmap en open deze opnieuw.
De Auto_Open macro die u hebt getypt, wordt uitgevoerd wanneer u de werkmap opent.
Selecteer cel C3.
Dit is de cel met een opmerking met het lopende totaal.
Volg deze stappen om de macro SetComment uit te voeren:
- Wijs in het menu Extra op Macro en klik vervolgens op Macro's.
- Klik in het dialoogvenster Macro op SetComment en klik vervolgens op Uitvoeren.
Een voorbeeld van het gebruik van het lopende totaal
Voer de volgende stappen uit om het lopende totaal te gebruiken:
- Typ het getal 10 in cel C3.
- Selecteer cel C3 en u ziet dat de opmerking 'RT= 10' (zonder de aanhalingstekens) weergeeft.
- Typ het getal 7 in cel C3.
- Selecteer cel C3 en u ziet dat de opmerking 'RT= 17' (zonder de aanhalingstekens) weergeeft.
Het lopende totaal verwijderen
Voer de volgende stappen uit om het lopende totaal te verwijderen:
- Selecteer de cel met het lopende totaal dat u wilt verwijderen.
- Klik met de rechtermuisknop op de cel en klik op Opmerking verwijderen in het snelmenu.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub Issues geleidelijk uitfaseren als het feedbackmechanisme voor inhoud. Het wordt vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor