Ich arbeite an einem Makro, das ein Listenblatt für verschiedene Grafschaften durchsuchen und dann die gesamte Zeile auf dem aktuellen Blatt einfügen wird. Ich habe ein Arbeitsblatt für jede Person (Mark, John, etc.) und jeder Person sind mehrere Grafschaften zugeordnet. Mark hat drei Bezirke, die in den Zellen J1: L1 aufgelistet sind, die ich als Bereich (MyCounties) bezeichnet habe. Mein Makro durchsucht die Spalte "I" der Tabelle "Liste" für jeden dieser Bezirke und kopiert die gesamte Zeile auf Blatt "Markierung", beginnend bei "A4". Das Makro, das ich habe, funktioniert sehr gut dafür.Zeilen mit mehreren Unterkriterien kopieren
Für größere Gebiete wie Los Angeles County, wird es jedoch aufgeteilt zwischen 6 Personen, die jeweils verschiedene Städte in diesem Kreis nehmen, und in der Stadt LA selbst, nehmen Sie verschiedene Postleitzahlen. Ist es möglich, nach übereinstimmenden County und dann nach Stadt (für alle Städte nicht LA), sowie nach Los Angeles (Stadt) und dann Postleitzahl zu suchen? County ist die Spalte "I", City ist die Spalte "G" und Zip ist die Spalte "H". Also "Andrew" hätte in LA County Städte von Alhambra, Arcadia, etc. und auch LA (Stadt) Postleitzahlen von 90004, 90006, etc. Ich weiß, dass das unten veröffentlichte Makro wird nicht dafür funktionieren, aber gibt es a Möglichkeit, es zu bearbeiten, damit es macht, was ich will? Ich habe ein Helferblatt ("Los Angeles"), das den Namen der Person (Peter) in A1 zeigt: D1 (zusammengefügte Zellen), B3 und unten sind Counties zum Filtern, C3 und Down sind Städte zum Filtern und D3 und Down sind Postleitzahlen nach denen gefiltert werden soll. Dann überspringen wir eine Spalte und F1: I1 ist die nächste Person.
Ich habe ein Testdokument, das ich anhängen werde, sobald ich herausfinden, wie man das macht. test doc
Sub MoreReports()
Dim w As Long, cVar As Variant, zVar As Variant, rw As Long, sDoc As Worksheet, tDoc As Worksheet
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
Set sDoc = Sheets("List")
Set tDoc = Sheets("Peter")
Set cVar = Sheets("Los Angeles").Range("C3:C52")
Set zVar = Sheets("Los Angeles").Range("d3:d52")
With sDoc
If .AutoFilterMode Then .AutoFilterMode = False
With .Range(.Cells(4, "G"), .Cells(.Rows.Count, "I").End(xlUp))
.AutoFilter field:=3, Criteria1:="Los Angeles", Operator:=xlAnd
.AutoFilter field:=1, Criteria1:=cVar, Operator:=xlFilterValues
.AutoFilter field:=1, Criteria1:="Los Angeles", Operator:=xlAnd
.AutoFilter field:=2, Criteria1:=zVar, Operator:=xlFilterValues
.AutoFilter field:=3, Criteria1:="Ventura", Operator:=xlFilterValues
With .Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count)
If CBool(Application.Subtotal(103, .Cells)) Then
.Cells.EntireRow.Copy Destination:=tDoc.Cells(rw, "A")
End If
End With
End With
If .AutoFilterMode Then .AutoFilterMode = False
End With
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
Haben Sie sich eine If-Anweisung mit mehreren Bedingungen angeschaut? Etwas wie WENN AND (crit1, crit2, crit3) DANN würde erlauben, jedes der drei Kriterien zu setzen, die Sie in Ihrer Frage spezifizieren (Ist es möglich, nach passender Grafschaft und dann Stadt (für alle Städte nicht LA) sowie zu suchen für Los Angeles (Stadt) und dann Postleitzahl? County ist Spalte "I", Stadt ist Spalte "G", und Zip ist Spalte "H". So "Andrew" hätte in LA Landkreis Städte Alhambra, Arcadia, etc. und auch LA (Stadt) Postleitzahlen von 90004, 90006, etc.). Ihre Kriterien könnten sogar MATCH() oder FIND() verwenden. – Cyril
Ich bin ziemlich neu in der Codierung (der Code oben geschrieben ist eine Änderung von Code Jeeped für mich in einer anderen Frage veröffentlicht. Er empfahl, dass, da diese Frage ein bisschen anders ist als das, ich sollte eine neue Frage beginnen. Das heißt: Ich würde gerne eine If - Anweisung für diese Kriterien verwenden, aber ich weiß nicht, welche Syntax ich verwenden soll und wie/wo ich sie in meinen bestehenden Code einfügen soll. – user4907546
Also, ich habe mir die test doc und ich bin ein bisschen etwas auseinander genommen.Wenn ich das nachvollziehen kann ... willst du dein Blatt "Los Angeles" als Referenzblatt erstellen um eine if-Anweisung zu erstellen und Zeilen aus dem Blatt "List" in die verschieben einzelne benannte Blätter? – Cyril