Mehrere Bereiche in einer VBA-Schleife?
Ich bin ein Anfänger in VBA und versuche zu markieren, nur leere Zellen in den Spalten N und AA nur. Kann es sein, mehrere Bereiche in einer For-Schleife, um diese Arbeit zu machen, statt Sie den folgenden code?
Private Sub CommandButton22_Click()
'HIGHLIGHT
Dim cell As Range
For Each cell In Range("N")
If cell.Value = vbNullString Then
cell.Interior.ColorIndex = 6
End If
Next cell
For Each cell In Range("AA")
If cell.Value = vbNullString Then
cell.Interior.ColorIndex = 6
End If
Next cell
End Sub
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie einfach erstellen Sie ein nicht-kontinuierliches Spektrum durch die Kombination der beiden range-Adresse wie das:
Aber es ist effizienter, verwenden Sie die Intersect-Methode zum trimmen der Bereich um den Anteil des Arbeitsblatts:
bearbeitet join die
SpecialCells
Ansatz mit dem Vorteil derUsedRange
wie bereits von Thomas Inzina LösungVerwenden
SpecialCells()
Methode derRange
Objekt und vermeiden loopingJa. Verwenden Sie die
Application.Union
Methode. Das gibt Bereiche /Eine Auflistung der Bereiche oder zusammenhängende Blöcke von Zellen, innerhalb einer Auswahl.Dem folgenden code funktioniert.
Wird es Farbe die gesamte Spalte, wenn. Wenn Sie wollen einfach nur Farbe eine Teilmenge ab: aus den Zeilen
10
durch22
in beiden Spalten, ändern Sie dann die union-Linie, so etwas wie diesesSet target = Application.Union(ActiveSheet.Range("N10:N22"), ActiveSheet.Range("AA10:AA22"))