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.