Diskontinuerlig markering av celler

Här belyses hur vi kan markera ett diskontinuerligt cellområde, där cellerna uppfyller ett visst kriterium.


Exemplet utgår från att ett sökvärde finns i cell A2 i det aktiva arbetsbladet.

Namnet "Utfall" refererar till cellområdet B2:E7 i det aktiva arbetsbladet.

Exemplet demonstrerar också hur viss felhantering kan se ut.

Se också Hämta data från diskontinuerliga cellområden

Option Explicit

Sub Diskontinuerlig_Cellmarkering()
'© 2001 Alla rättigheter XL-Dennis
Dim rnSokOmrade As Range, rnMal As Range, rnCell As Range
Dim iSokVarde As String

iSokVarde = Int(Range("A2").Value)

'I händelse av att det inte finna några celler innehållande
'tal i sökområdet.
On Error Resume Next
Set rnSokOmrade = Range("Utfall").SpecialCells(xlConstants, xlNumbers)
On Error GoTo 0


If Not rnSokOmrade Is Nothing Then
        For Each rnCell In rnSokOmrade
             'Kriteriet för att cell ska bli markerad
             If rnCell.Value = iSokVarde Then
                  'Här skapas det diskontinuerliga cellområdet
                  If rnMal Is Nothing Then
                     Set rnMal = rnCell
                  Else
                     Set rnMal = Union(rnMal, rnCell)
                  End If
            End If
        Next rnCell
End If


'Meddelande om den totala summan för de celler som uppfyller
'kriteriet.
MsgBox "Summan uppgår till: " & Application.Sum(rnMal) & " Tkr"

'Här sker markering av det diskontinuerliga cellområdet.
If Not rnMal Is Nothing Then
   rnMal.Select
End If
End Sub