Legen Sie filter in Excel mit VBA

Dem nachstehenden makro wird mir erlauben, zu finden, einen Namen in der überschrift in Blatt 1 und kopieren Sie die gesamte Spalte in Blatt 2. Nun möchte ich weiter den code, bin aber vor einem problem, welches ich versuchen werde zu erklären.

Sub CopyColumnByTitle()
'Find "Name" in Row 1
  With Sheets(1).Rows(1)
   Set t = .Find("Name", lookat:=xlpart)
'If found, copy the column to Sheet 2, Column A
'If not found, present a message
     If Not t Is Nothing Then
        Columns(t.Column).EntireColumn.Copy _
          Destination:=Sheets(2).Range("A1")
       Else: MsgBox "Title Not Found"
     End If
  End With
End Sub

nachdem alle Daten eingefügt wird, in der auf Blatt 2 wie auf der Abbildung ....

Sheet 2
Name Age Address    Date of Birth
John    25  US  1-Sep-11
Hary    26  US  1-Sep-11
John    27  UK  1-Sep-11
Hary    28  US  2-Sep-11
King    29  UK  3-Sep-11
Peter   30  US  3-Sep-11

Muss ich die Filter so eingestellt, wie unten gezeigt, und kopiere die gefilterten Daten in Tabelle 3, wie oben der code funktioniert:

  1. Ich brauche, um Filterkriterien auf Blatt 2, die mir hilft zu sehen Names, die sind gleich "John" oder "Hary" und kopieren Sie die gesamten Daten in Blatt 3.
  2. Ich brauche, um einen anderen filter, wo Name ist gleich "John" und Date of Birth ist gleich "1-Sep-11" (beachten Sie das Datum sollte immer von gestern). Kopieren Sie und fügen Sie die gesamte
    Daten in Blatt 4.
  3. Auf die Dritte Zeit, die ich brauche, um einen filter zu setzen, wo Name ist gleich "König" und kopieren Sie die Vergangenheit und die gesamten Daten in Blatt 5.

Vielen Dank John für Ihre Antwort, die Antwort, die Sie Gaben wirksam ist, aber ich habe schon dafür meinen code aufgrund des dringenden Anforderungen.

Brauche ich eine leichte Hilfe in gleichen. Ich bin einfügen von einigen Teil von code ist es nicht möglich, fügen Sie den gesamten code.

Code ermöglicht mir das kopieren von Daten von einer Arbeitsmappe in eine andere, aber beim kopieren der Daten muss ich kopieren einer ganzen Spalte, da gibt es einige leere Zellen in es. So, wenn ich nicht verwenden .EntireColumn das makro nicht kopieren von Zellen nach der leeren Zelle. Auch jetzt, beim einfügen der Daten in die anderen arbeiten, Buch, muss ich es einfügen, ohne die überschrift.

Ich wäre Ihnen dankbar, wenn Sie mir heraus helfen mit diesem.

Windows("macro2.xlsm").Activate
Range(Range("M2"), Range("N2").End(xlDown)).EntireColumn.Select
Application.CutCopyMode = False
Selection.Copy
Windows("formula.xls").Activate
Range(Range("I2"), Range("J2").End(xlDown)).EntireColumn.Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
  • ich glaube nicht, dass dein Erster code funktioniert gut (es sind einige syntax-Fehler). Wie die Daten sollen gefiltert werden, die auf die Dritten und vierten Blätter? wir setzen den filter John in den code?
InformationsquelleAutor jimz | 2011-09-08
Schreibe einen Kommentar