2016-05-11 10 views
1

Ich habe wenige Zellen in Reichweite ("I1: I100") gefärbt. Ich muss die ganze Reihe färben. Ich habe VBA dafür registriert, aber es zeigt einen Fehler an.Die gesamte Zeile einfärben

ActiveSheet.Range("I1:I100").AutoFilter Field:=1, Criteria1:=RGB(255, 255 _ 
    , 0), Operator:=xlFilterCellColor 
Rows.Activate.Select 
With Selection.Interior 
    .PatternColorIndex = xlAutomatic 
    .Color = 65535 
    .TintAndShade = 0 
    .PatternTintAndShade = 0 
End With 
ActiveSheet.Range("$A$1:$G$9").AutoFilter Field:=1 

aber ist es möglich, einen einfachen Code durch Deklarieren der Variablen zu haben.

+0

Was ist der Fehler? Welche Bedingung bestimmt, wann die Zeilen eingefärbt werden sollen, oder sind es nur Zeilen? Meinst du wirklich die ganze Zeile (nicht empfehlenswert) oder deine gesamte Datenzeile, in welchem ​​Fall die letzte Spalte deiner Daten farbig sein soll. –

+0

@ForwardEd das ist die größte Herausforderung während der Aufnahme dauert Reihen (..), aber es wird für verschiedene Arbeiten variieren, die ich versucht habe, aktive Zeilen nach dem Filter –

+0

Sorry verpasste die gesamte Zeile mit dem Autofilter darin. Du würdest um 14 Uhr denken, ich wäre wach! –

Antwort

1

Rows.Activate.Select ist, wo Ihr Fehler passiert, wie Sie .Activate.Select nicht tun können. Bitte lesen Sie How to avoid using .Select/.Activate, und versuchen Sie die folgenden:

Sub t() 
' What's this next line supposed to do? 
'ActiveSheet.Range("I1:I100").AutoFilter Field:=1, Criteria1:=RGB(255, 255 _ 
    , 0), Operator:=xlFilterCellColor 

With Rows("1:100").Interior 
    .PatternColorIndex = xlAutomatic 
    .Color = 65535 
    .TintAndShade = 0 
    .PatternTintAndShade = 0 
End With 
ActiveSheet.Range("$A$1:$G$9").AutoFilter Field:=1 
End Sub 
Verwandte Themen