Excel - Daten selektiv in vordefinierten Bereich übertragen

Problem

Ich bin neu in Excel VB. Ich möchte eine Reihe von Daten aus Arbeitsblatt1 vergleichen, indem ich eine Reihe von Bedingungen / Kriterien erfülle und diese Daten dann in einen vordefinierten Bereich in Arbeitsblatt2 übertrage, während ich Datenspalten auslasse, die ich nicht benötige.

Zum Beispiel:

Arbeitsblatt1 enthält die folgenden Daten, bei denen ich Daten benötige, die den Wert "si" in Spalte A und den Wert "d" und "m" in Spalte B erfüllen, und dann die entsprechenden Zeilen in Spalte A, C und E nur in Arbeitsblatt2 übertragen.

 ABCDE ist xxxxxx und 2 ddddd pg drx dddd pg mra sdfsdf fj mw 3 ghghgh fj dwf dssdg si mx 1 sfsdfsd si yx 1 hmhjkk 

Arbeitsblatt2 verfügt über die vordefinierten Spalten / Bereiche (A, C und E), in die die Daten kopiert werden sollen. Wenn dies funktioniert, sollte ich das folgende Ergebnis haben, wie unten gezeigt.

 ACE und xxxxxx und ddddd und sfsdfsd 

Beachten Sie, dass die vordefinierten Spalten oder Bereiche in Arbeitsblatt2 automatisch entsprechend der darin übertragenen Datenmenge erweitert und verkleinert werden sollten.

Jede Methode ist in Ordnung, solange die Ausgabe in Arbeitsblatt 2 archiviert wird.

Lösung

Die Daten in Blatt 1 müssen Spaltenüberschriften in Zeile 1 haben. Das Beispielblatt sieht folgendermaßen aus:

 hdng1 hdng2 hdng3 hdng4 hdng5 und xxxxxx sowie 2 ddddd pg drx dddd pg mra sdfsdf fj mw 3 ghghgh fj dwf dssdg si mx 1 sfsdfsd si yx 1 hmhjkk 

Führen Sie dieses Makro aus und sehen Sie sich Blatt 2 an

(Bewahren Sie die Originaldatei immer an einem sicheren Ort auf

Das Makro ist

 Untertest () Arbeitsblätter ("sheet2"). Zellen.Leere Arbeitsblätter ("sheet1") .Aktivieren Sie ActiveSheet.UsedRange.Select Selection.AutoFilter Field: = 1, Criteria1: = "si" Selection.AutoFilter Field: = 2, Criteria1 : = "= d", Operator: = xlOr, _ Criteria2: = "= m" ActiveSheet.Cells.SpecialCells (xlCellTypeVisible) .Copy With Worksheets ("Sheet2") .Range ("A1"). PasteSpecial .Range ("A1") B: B, D: D "). Schicht löschen: = xlToLeft Application.CutCopyMode = False End With Selection.AutoFilter Range (" A1 "). Wählen Sie End Sub 

Hinweis

Vielen Dank an [//ccm.net / ... venkat1926 für diesen Tipp im Forum.

Vorherige Artikel Nächster Artikel

Top-Tipps