Symptomen
- Een Excel-gebruiker heeft een klein stukje programma geschreven om cellen met formules te herkennen.
Option Explicit Sub ZoekFormulecellen() Dim cel As Range For Each cel In ActiveSheet.UsedRange If Left(cel.Formula, 1) = "=" Then MsgBox cel.Address End If Next cel End Sub
Het programma meldt dat de inhoud van een bepaalde cel met een isgelijkteken begint. En toch blijkt de cel geen formule te bevatten.
Remedie
Pas de regel met het IF-statement als volgt aan:
If cel.HasFormula Then
Nu worden alleen cellen herkend die ook echt een formule bevatten.
Verdieping
Het gebruik van de functie Left is bij veel beginnende programmeurs erg populair. Echter: het programma doet precies wat u vraagt. Doorgaans zal dat geen probleem zijn. Formules beginnen immers altijd met een isgelijkteken (=), en worden dus netjes gerapporteerd.
Het omgekeerde is echter niet waar. Bevat een cel uitsluitend het isgelijkteken, dan is er sprake van een tekstcel. Gebruikt u de functie Left dan wordt de cel als formulecel gerapporteerd.
Tips
- Bestudeer het objectmodel van Excel en gebruik de helpfunctie van Visual Basic om naar de eigenschappen van objecten te zoeken. Zoekt u naar “Range met formule”, dan presenteert de Help-functie de eigenschap .HasFormula keurig bij de eerste twintig zoekresultaten.
Zie ook
Excel-objectmodel.
Helpfunctie.