Excel VBA Makro zum filtern der Datei und kopieren Sie Sie auf neue Arbeitsmappe

Ich bin sehr neu in VBA Programmierung und versuche zu schreiben ein VBA-code in excel mit Diesem code werden meine filter Datei Criteria1:="=*001" und kopieren Sie die besonderen Wert auf neue Arbeitsmappe mit dem Namen AV und speichern Sie es. Nun möchte ich auch kopieren Sie alle Werte, wo Criteria1:="<>*001" neue Arbeitsmappe mit dem Namen LC und speichern Sie es.

Hier ist der code, den ich auf dieser website gefunden und versucht, modifiziert es aber nicht sicher, wie Sie Sie verwenden ELSE für Criteria1:="<>*001".

Sub sort()
On Error Resume Next
Application.DisplayAlerts = False

Dim new_book As Workbook
Dim newsheet As Worksheet

With ThisWorkbook.Sheets("NRM_Homing_Upload")  'Replace the sheet name with the raw data sheet name

    Set newsheet = ThisWorkbook.Sheets("TempSheet")

        If newsheet Is Nothing Then
                Worksheets.Add.Name = "TempSheet"
            Else
                ThisWorkbook.Sheets("TempSheet").Delete
                Worksheets.Add.Name = "TempSheet"
        End If

            .Columns("H").Copy

                With ThisWorkbook.Sheets("cal")
                    .Range("A1").PasteSpecial (xlPasteAll)
                    .Columns("H").RemoveDuplicates Columns:=1, Header:=xlYes
                End With

                        For Each cell In ThisWorkbook.Sheets("TempSheet").Columns("a").Cells
                            i = i + 1
                                If i <> 1 And cell.Value <> "" Then
                                    .AutoFilterMode = False
                                    .Rows(1).AutoFilter field:=8, Criteria1:="=*001"
                                    Set new_book = Workbooks.Add
                                    .UsedRange.Copy
                                    new_book.Sheets(1).Range("a1").PasteSpecial (xlPasteAll)
                                    'new_book.SaveAs Filename:=ThisWorkbook.Path & "\" & cell.Value & ".xlsx"
                                    new_book.SaveAs Filename:="C:\Desktop\excel\test\AV.xlsx"
                                    new_book.Sheets(1).UsedRange.Columns.AutoFit
                                    new_book.Save
                                    new_book.Close

                                End If
                        Next cell



                            ThisWorkbook.Sheets("TempSheet").Delete
End With

End Sub

Jede Hilfe ist willkommen.
Dank

  • Wollen Sie wirklich, um eine Schleife durch alle Zeilen in Spalte A das temp-Blatt und filter jedes mal, wenn eine Zelle <> ""? Oder willst du einfach nur filter zweimal - einmal für =*001 und once for <>*001 und erstellen Sie zwei Arbeitsmappen? Und wie funktioniert das TempSheet bekommen mit Daten gefüllt? Ich sehe in deinem code ist, dass Sie das Blatt, aber es wird nie Daten ausgefüllt.
  • Was ist im Arbeitsblatt "cal"? warum sind Sie kopieren NRM_Homing_Upload.columns("H") cal.Spalten("A") und dann entfernen der Duplikate von cal.Columns("H")? beim ausführen einer for-Schleife über TempSheet, es sieht aus wie Sie arbeiten, mit einem leeren Blatt, weil man noch nicht alles, was in es noch nicht. Warum sind Sie FÜR die Schleife durch alle Zellen in TempSheet wenn Sie nur zwei Sätze von Werten, die Sie suchen? Die Art und Weise Ihre Aussagen sind, Sie sind autofiltering "NRM_Homing_Upload", nicht tempsheet, ist, dass das, was Sie sind versuchen zu tun?
  • okay - aber das Sie nur kopieren, Spalte H aus NRM_Homing_Upload zu TempSheet zu Spalte A. Dann entfernen Sie Duplikate aus Spalte H? Meinst du zum entfernen der Duplikate aus Spalte A in TempSheet. Und so Ihr zwei Arbeitsmappen haben nur 1 Spalte mit Daten jedes?
  • Hallo Scott, ich möchte genau das tun, was du geschrieben hast, aber ich bin nicht sicher, wie das zu tun. Außerdem ist es nicht "cal" seine tempsheet. Sorry habe vergessen es zu ändern. Wenn ich diesen starte, es tut füllen Sie die Daten und speichern Sie es als AV.xlsx. aus dem Blatt "NRM_Homing_Upload" die Filterung der Spalte H auf der Basis von Kriterien und kopieren alle Spalten von A bis S um neue Arbeitsmappe mit den gefilterten Ergebnissen.
  • Ja, es entfernen Duplikate aus Spalte A in TempSheet
InformationsquelleAutor MGoyal | 2015-11-19
Schreibe einen Kommentar