2017-07-03 4 views
-1

Ich arbeite derzeit mit einigen Makros und ich bin verwirrt mit diesem Stück VBA-Code, den ich kopiert habe. Dieses Problem tritt nur in dieser Arbeitsmappe allein und in anderen Arbeitsmappen nicht auf. Das Problem ist mit dieser Zeile:Excel VBA .Autofilter Feld: = betrifft falsche Spalte

sh1.Range("$A$21:$ZZ$10000").AutoFilter Field:=64, Criteria1:="<>" 

.AutoFilter Field:=64 nicht wirklich die 64th Spalte filtern. Wenn das Makro ausgeführt wird, wirkt sich dies stattdessen auf die 65. Spalte aus.

Sub FilterGate() 

Dim sh1 As Worksheet 
Dim sh2 As Worksheet 

Set sh1 = ActiveWorkbook.Sheets("Program Management") 
Set sh2 = ActiveWorkbook.Sheets("Certification") 


sh1.Range("$A$21:$ZZ$10000").AutoFilter Field:=64, Criteria1:="<>" 
Range("A1").Select 

sh2.Range("$A$21:$ZZ$10000").AutoFilter Field:=64, Criteria1:="<>" 
Range("A1").Select 

End Sub 

Warum wirkt die Autofilter als solche?

+1

Ihr Code funktioniert für mich. Sie haben wahrscheinlich eine fehlende Spalte in sh1: 'Feld: = 64' ist Spalte ** BL ** –

+0

Vielen Dank für Ihre Antwort, ich habe gerade den Code auf einer neuen Excel-Arbeitsmappe getestet und es funktioniert einwandfrei und keine Probleme. Obwohl ich nicht glaube, dass mir eine Spalte fehlt, funktioniert die Codezeile immer noch auf meiner ursprünglichen Arbeitsmappe, wenn auch nicht richtig. Basierend auf dem Code sollte Spalte BL die richtige sein, außer Spalte BM ist, was tatsächlich gefiltert wird. –

+0

Ist Spalte A auf diesem Blatt leer? – Rory

Antwort

0

Vielen Dank für die hilfreichen Beiträge alle! Das Problem war, dass Spalte A komplett leer war. Die AutoFilter starteten von den Spalten B nach BO, was die Zahlen wegwarf. Das Starten der AutoFilters von Spalten A zu BO half, das Problem zu beheben.

Verwandte Themen