Vba: een waarde in een kolom vinden (met voorbeeld)
U kunt de volgende basissyntaxis in VBA gebruiken om een waarde in een kolom in Excel te vinden:
Sub FindValue()
Dim rng As Range
Dim cell As Range
Dim findString As String
'specify range to look in
Set rng = ActiveSheet.Columns(" A:A ")
'specify string to look for
findString = " Rockets "
'find cell with string
Set cell = rng.Find(What:=findString, LookIn:=xlFormulas, _
LookAt:=xlWhole, MatchCase:=False)
If cell Is Nothing Then
cell.Font.Color = vbBlack
Else
cell.Font.Color = vbRed
cell.Font.Bold = True
End If
End Sub
Deze specifieke macro doorzoekt de hele kolom A van het momenteel actieve blad naar de tekenreeks „Rockets“ en verandert, indien gevonden, de lettertypekleur van de cel in rood en maakt het lettertype vetgedrukt.
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: een waarde in een kolom vinden met behulp van VBA
Stel dat we de volgende dataset hebben met informatie over verschillende basketbalspelers:
Laten we zeggen dat we de teamnaam „Rockets“ in kolom A willen vinden, en zodra we deze hebben gevonden, converteren we de lettertypekleur van de cel naar rood en maken we het lettertype vetgedrukt.
We kunnen hiervoor de volgende macro maken:
Sub FindValues()
Dim rng As Range
Dim cell As Range
Dim findString As String
'specify range to look in
Set rng = ActiveSheet.Columns(" A:A ")
'specify string to look for
findString = " Rockets "
'find cell with string
Set cell = rng.Find(What:=findString, LookIn:=xlFormulas, _
LookAt:=xlWhole, MatchCase:=False)
If cell Is Nothing Then
cell.Font.Color = vbBlack
Else
cell.Font.Color = vbRed
cell.Font.Bold = True
End If
End Sub
Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:
Merk op dat het lettertype in de cel met de tekenreeks „Rockets“ nu rood en vet is.
Alle andere cellen behielden gewoon hun zwarte lettertype.
Houd er rekening mee dat het MatchCase:=False- argument in de code VBA vertelt een hoofdletterongevoelige zoekopdracht uit te voeren.
Dus als de teamnaam in kolom A „raketten“ was, zou de macro altijd die string vinden en het lettertype rood en vet maken.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in VBA kunt uitvoeren:
VBA: Hoe AVERAGEIF- en AVERAGEIFS-functies te schrijven
VBA: SUMIF- en SUMIFS-functies schrijven
VBA: Hoe COUNTIF- en COUNTIFS-functies te schrijven