De voorwaardelijke opmaak is mogelijk onjuist ingesteld wanneer u VBA in Excel gebruikt
Symptomen
Neem het volgende scenario:
- U selecteert een cel in een werkblad in Microsoft Excel 2000 of in een latere versie van Excel.
- U gebruikt Microsoft Visual Basic for Applications (VBA) om een programma voor voorwaardelijke opmaak op basis van formules te maken.
- U gebruikt relatieve celverwijzingen in het VBA-programma voor voorwaardelijke opmaak.
- U past de voorwaardelijke opmaak toe op een andere cel dan de geselecteerde cel.
Wanneer u de voorwaardelijke opmaak toepast, ziet u dat de voorwaardelijke opmaak niet correct is ingesteld.
U ondervindt dit probleem bijvoorbeeld wanneer u een programma gebruikt dat VBA-code bevat in een Excel-werkblad dat vergelijkbaar is met de volgende code:
Sub Example()
ThisWorkbook.Worksheets(1).Range("A1").Select
With ThisWorkbook.Worksheets(1).Range("B1")
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, _
Formula1:="=A1=1"
.FormatConditions(1).Interior.ColorIndex = 46
End With
End Sub
Met deze code wordt de voorwaardelijke opmaak automatisch toegepast op cel B1 wanneer u '1' invoert in cel A1. Wanneer u '1' invoert in cel A1, verwacht u dat de kleur van cel B1 rood wordt. De kleur van de cel verandert echter niet. De kleur van cel B1 verandert alleen in rood als u '1' invoert in cel B1.
Daarnaast wordt in het dialoogvenster Voorwaardelijke opmaak de formule weergegeven als =B1=1 in plaats van =A1=1.
Tijdelijke oplossing
Om dit probleem te omzeilen, gebruikt u een van de volgende methodes.
Methode 1: Absolute celverwijzingen gebruiken
U kunt absolute celverwijzingen gebruiken om te verwijzen naar de cel met de formule in plaats van naar relatieve celverwijzingen.
U kunt bijvoorbeeld de tekstvermelding Formula1:="=A1=1" in de VBA-code wijzigen die in de sectie Symptomen wordt beschreven als Formule1:="=$A$1=1" zodat de code absolute celverwijzingen gebruikt. Deze gewijzigde versie van de VBA-code is als volgt:
Sub Example()
ThisWorkbook.Worksheets(1).Range("A1").Select
With ThisWorkbook.Worksheets(1).Range("B1")
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:="=$A$1=1"
.FormatConditions(1).Interior.ColorIndex = 46
End With
End Sub
Methode 2: Selecteer de cel die u wilt gebruiken voor voorwaardelijke opmaak voordat u de formule toepast
Als u voorwaardelijke opmaak wilt toepassen op een cel, selecteert u eerst de cel die u wilt gebruiken voor de voorwaardelijke opmaak. Selecteer vervolgens de cel die u wilt gebruiken voor de formule. Nadat u deze cel hebt geselecteerd, kunt u de formule aanpassen aan uw vereisten.
Volg hiervoor deze stappen, voor zover van toepassing op de versie van Excel die u gebruikt.
Microsoft Office Excel 2007
- Start Excel en open een nieuw Excel-werkblad.
- Selecteer cel B1 in het Excel-werkblad.
- Klik op het tabblad Start .
- Klik op Voorwaardelijke opmaak in de groep Stijlen en klik vervolgens op Nieuwe regel.
- Klik op Een formule gebruiken om te bepalen welke cellen moeten worden opgemaakt onder Een regeltype selecteren.
- Klik in het vak Waarden opmaken waar deze formule waar is . Selecteer vervolgens de cel die u wilt gebruiken voor de voorwaardelijke opmaak.
- Wijzig de waarde in stap 6 in =$A$1=1.
- Klik op Opmaak.
- Klik in het dialoogvenster Cellen opmaken op het tabblad Opvulling .
- Klik op de kleur 'rood' en klik vervolgens op OK.
- Klik in het dialoogvenster Nieuwe opmaakregel op OK.
- Typ 1 in cel A1 en druk op Enter.
- Controleer of de kleur van cel B1 is gewijzigd in rood.
- Sluit het Excel-werkblad.
Microsoft Office Excel 2003 en eerdere versies van Excel
- Start Excel en open een nieuw Excel-werkblad.
- Selecteer cel B1 in het Excel-werkblad.
- Klik in het menu Opmaak op Voorwaardelijke opmaak.
- Klik onder Voorwaarde 1 op Formule is in de lijst.
- Klik in het vak voor gegevensinvoer. Selecteer vervolgens de cel die u wilt gebruiken voor de voorwaardelijke opmaak.
- Wijzig de waarde in het gegevensinvoervak in =$A$1=1 en klik vervolgens op OK.
- Klik op Opmaak.
- Klik in het dialoogvenster Celeigenschappen op het tabblad Patronen .
- Selecteer de kleur 'rood' en klik op OK.
- Klik in het dialoogvenster Voorwaardelijke opmaak op OK.
- Typ 1 in cel A1 en druk op Enter.
- Controleer of de kleur van cel B1 is gewijzigd in rood.
- Sluit het Excel-werkblad.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor