Makro für Excel: Wenn in Spalte B ein "X", dann kopieren Sie ganze Zeilen und fügen Sie im Arbeitsblatt mit dem Namen "Spalte B"
Begrenzt habe ich erfahren, schreiben von Makros, und ich bin auf der Suche zum aktualisieren einer aktuellen Arbeitsblatt bei der Arbeit verwendet. Derzeit kopieren wir die gesamte Master-Arbeitsblatt kopieren und einfügen in andere Arbeitsblätter vor der Sortierung für das "X" in bestimmten Spalten zu löschen, die anderen Zeilen auf dem master-Arbeitsblatt.
Was ich Suche zu tun, ist die Suche der Master-Platte, und wenn in Spalte B ein "X" dann kopieren die ganze Zeile und einfügen in ein Arbeitsblatt mit der Bezeichnung "Spalte B". Dann, wenn die Spalte B wurde abgeschlossen und eingefügt, sähe es in Spalte D Wenn in Spalte D haben ein "X", es würde kopieren Sie die gesamte Zeile und füge Sie in Arbeitsblatt-Registerkarte mit der Bezeichnung "Spalte D".
Vielen Dank im Voraus!
Ich bin nicht sicher, warum wurden angesichts der Kredit für das Aufräumen der Frage. Excellll Tat all die harte Arbeit.
(1) Die gesamte Zeile, wo "X" in Spalte B kopiert und dann einfügen in Arbeitsblatt "Spalte B". Nichts gelöscht werden. Das kann später erledigt werden. (2) "X" ist der genaue Wert in diesen Spalten. (3) Wenn es ein "X" in den Spalten B und D, dann würde ich das ganze kopiert und eingefügt werden in beiden Worksheet-Spalte "B" und Arbeitsblatt "Columb D". (4) ja, der Master-Arbeitsblatt unverändert bleiben. Dank
InformationsquelleAutor Mark Berlin | 2012-03-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ansatz
Ich hätte diese in der ersten version meiner Antwort.
Meine Lösung hängt davon ab, AutoFilter. Ich bieten zunächst einen play-Lösung, die diesen Ansatz veranschaulicht durch:
Wenn Sie dieses Konzept anspricht, Verweise ich Sie auf meine Antwort auf eine andere Frage, schafft ein Menü, so kann der Benutzer auswählen, welche filter Sie wollen.
Wenn dieser Ansatz nicht ZUSAGT, biete ich eine zweite Lösung, die sich um das kopieren der sichtbaren Zeilen Links durch die einzelnen filter zu anderen Arbeitsblättern.
Einführung
Sagen Sie "begrenzt habe ich erfahren, schreiben von Makros", die ich nehmen an Sie bedeuten, dass Sie einige Erfahrung haben. Ich hoffe, ich habe das Niveau der Erklärungen richtig. Kommen Sie zurück mit Fragen, wenn nötig.
Ich davon aus, dass deine Arbeitsmappe liegt auf einem server. Ich nehme an, jemand hat schreib-Zugriff zum aktualisieren der master-Arbeitsblatt, während andere öffnen nur-lese-Kopien, so dass Sie Aussehen kann auf die Teilmengen von Interesse sind. Wenn meine Annahmen richtig, nehmen Sie eine Kopie der Arbeitsmappe für Sie zu spielen. Mach dir keine sorgen über andere, die Aktualisierung der master-version der Arbeitsmappe kopieren wir die endgültige version des Codes von deiner Spiel-version, wenn wir fertig sind.
Schritt 1
Kopieren Sie den ersten block von code zu einem Modul innerhalb der Spiel-version. In der Nähe der Unterseite finden Sie
Const WShtMastName As String = "SubSheetSrc"
. Ersetzen SubSheetSrc durch den Namen des master-Arbeitsblatt.Hinweis: die Makros in diesem block sind benannt
CtrlCreateSubSheetB
undCreateSubSheetB
weil Sie spielen Versionen. Die echten Versionen sind benanntCtrlCreateSubSheet
undCreateSubSheet
.Makro ausführen
CtrlCreateSubSheetB
. Sie werden sehen, die Master-Arbeitsblatt, sondern nur die Zeilen mit einem "X" in der Spalte B. Klicken Sie auf die message-box.Sie werden sehen, die Master-Arbeitsblatt, sondern nur die Zeilen mit einem "X" in Spalte D. Klicken Sie auf die message-box und der filter verschwinden. Wechseln Sie zu den VB-Editor, wenn Sie nicht bereits vorhanden sind. In das Direktfenster (Klicken Sie aufCtrl
+G
wenn es nicht sichtbar ist) und Sie sehen etwas wie:Nun die Arbeit nieder Makros
CtrlCreateSubSheetB
undCreateSubSheetB
. Sie müssen verstehen, wie diese makro erstellt haben, die Effekte, die Sie sah. Wenn notwendig, verwenden Sie die VB-Hilfe, Debugger undF8
zu Schritt nach unten, die Makros zu identifizieren, was jeder Anweisung zu tun. Ich glaube ich habe Euch genug Informationen, sondern kommen zurück mit Fragen, wenn nötig.Schritt 2
Wenn meine Annahmen darüber, wie Sie verwenden die Arbeitsmappe korrekt sind, können Sie nicht viel mehr brauchen. Wenn John und Mary jeweils öffnen-Lesen-öffnen Sie die Kopie der master-Arbeitsmappe dann John konnte die B-filter, während Mary verwendet den D-filter. Wenn dies interessant klingt, schau in meine Antwort auf Sie Zeile kopieren von Daten von einem Blatt auf ein oder mehrere Blätter auf Grundlage der Werte in anderen Zellen.
Schritt 3
Wenn Sie nicht wie die Idee, nur mit Filter und immer noch wollen, um Kopien zu erstellen von den B-Daten-und der D-Daten, müssen Sie den code unten.
Die Makros in diesem block sind benannt
CtrlCreateSubSheet
undCreateSubSheet
aber sind nicht viel anders als die B-Versionen vor.In
CtrlCreateSubSheet
ersetzen Sie "SubSheetSrc", "SubSheetB" und "SubSheetD" mit Ihrem Namen für diese Arbeitsblätter. Fügen Sie weitere Anrufe vonCreateSubSheet
für jede weitere Kontrolle Spalten.Hinweis: diese version löschen der ursprünglichen Inhalte des Ziel-sheets-dies ist zwar nicht das, was Sie gefragt haben. Ich habe gelöscht, den ursprünglichen Inhalt, da (1) das, was Sie haben, hinzufügen von neuen Zeilen ist komplizierter, und (2) ich glaube nicht, dass Sie korrekt sind. Wenn es einige Bedeutung zu, was Sie anzubieten dann kommen Sie zurück, und ich werde den code aktualisieren.
Schritt 4
Sobald Sie deleveloped die Makros zu Ihrer Zufriedenheit, müssen Sie kopieren Sie das Modul mit den Makros von deiner Spiel-version, um die master-version. Sie können das Modul exportieren und importieren Sie Sie dann, aber ich denke, das folgende ist einfacher:
Müssen Sie lehren, wer ist verantwortlich für die Aktualisierung der master-version, um die Makros auszuführen, wenn ein wichtiges update abgeschlossen ist. Sie könnte verwenden Sie eine shortcut-Taste oder fügen Sie das makro auf die Symbolleiste, um das makro einfach zu bedienen.
Zusammenfassung
Hoffe, dass alle, die Sinn macht. Fragen Sie Fragen, wenn nötig.
InformationsquelleAutor Tony Dallimore
Einfach:
InformationsquelleAutor artis_meditari