Excel VBA Makro ausführen in neue Zeile Eingefügt wird
Ich versuche, meine Tabelle automatisch den vorherigen Zeilen format und Formeln, wenn eine neue Zeile eingefügt wird.
Ich Lesen wo Sie einrichten können Sie Ihre Platte, um automatisch den code auszuführen, wenn eine änderung vorgenommen wird, aber ich bin eine harte Zeit haben, den code zu arbeiten.
Ich habe versucht, die folgenden und jedes mal, wenn ich eine neue Zeile einfügen es hält auch das hinzufügen einer Zeile, bis es kommt ein Fehler und ich muss auf sofort beenden:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Range("A1:D25") = ActiveCell.EntireRow.Insert Then
Cells(1, 2).Value = 10
End If
End Sub
Habe ich den Cell Value = 10
um zu sehen, ob es funktionieren würde. Es war nur ein test, aber es immer noch nicht.
Weiß jemand eine mögliche Lösung?
Es ist eines dieser Dinge, das aussieht wie es sollte funktionieren, aber bricht in einer lustigen Art und Weise. Ich bin mir nicht 100% sicher, was es ist zu tun, Wenn Anweisung... Wenn du sagst "Einfügen" eine neue Zeile" meinst du, du bist das anfügen von Daten auf eine neue Zeile, die weiter unten in der Platte, oder sind Sie tatsächlich Rechtsklick-einfügen einer neuen Zeile? In jedem Fall, wenn die Letzte Zeile mit Daten verschieben sich nach unten, Sie können ein Ereignis, das überprüft, die Letzte Zeile nach jedem worksheet_change, und fügt es an / Kontrollen, die gegen einen Wert in einem versteckten Blatt mit der prev. max Reihe, dann laufen, wenn es einen höheren Wert
InformationsquelleAutor BannerM | 2014-08-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es zwei große Probleme in Ihrem code
.Insert
tun nicht, was Sie scheinen zu denken, es tut. Es spielt keine erkennen eingefügten Zeilen, es Fügt Zeilen.Ich gehe davon aus, dass durch "... eine neue Zeile einfügen ..." du meinst Fügen Sie eine ganze Reihe
Diese demo vermeidet die Kaskade mit
.EnableEvents = False
und verwendetCopy
,pasteSpecial
zu kopieren, Formate und Formeln.InformationsquelleAutor chris neilsen
Es sieht aus wie Sie sind an die falschen Veranstaltung. Sie haben befestigt, Ihr code, um das "Worksheet_Change" - Ereignis, aber dein code verursacht auch eine änderung auf dem Arbeitsblatt
Schaltet gleich um und ruft dann das "Worksheet_Change" - Ereignis.
Als für die richtige Veranstaltung zu befestigen, es sieht aus wie es gibt keine native Veranstaltung für "Neue Zeile Eingefügt".
Gibt es eine Diskussion zu diesem über auf auf dieser Seite, die vielleicht eine Antwort auf dein problem...
InformationsquelleAutor laughsloudly
Wie @laughsloudly sagte, was Ihr code tut jetzt wird, sobald Sie eine änderung vornehmen, die irgendwo im Bereich A1:D25, wird es anfangen, einfügen von Zeilen, bis Excel läuft aus Zeilen, es ist eine offene Schleife.
Code:
Gemeint ist, zu überprüfen, ob die ergriffenen Maßnahmen in dem Bereich soll überwacht werden. Sie wollen nicht, um aufzutreten, eine Aktion in dieser Zeile. Vielmehr möchte man etwas mehr, wie:
Dadurch können Sie code ausführen, der aufgrund der Handlungen, die in Ihrem Blatt. Jedoch deine Aussage "ich versuche, meine Tabelle automatisch den vorherigen Zeilen format und Formeln, wenn eine neue Zeile eingefügt wird." ist nicht ganz logisch. Ich vermute, dass du meinst kopieren alle Formate aus der obigen Reihe und nur Formeln, die aus bestimmten Zellen, richtig? Also, lasst uns sagen, wenn Sie Zeilen, die alle Formeln relativ zu Spalte A, die Sie nicht wollen, kopieren Sie alle Zeilen, weil Sie überschrieben werden, die A. Darüber hinaus, in diesem Fall, Sie wollen nur zu überwachen Spalte A.
Also lassen Sie uns sagen, Sie haben Formeln in den Spalten B bis K, die sich auf Spalte A, dann wollen Sie nur änderungen in Spalte A, um Auswirkungen auf die Tabelle. Dann würde der code wie folgt Aussehen:
Diese kopiert alles nieder, was aber Spalte A, wenn Sie eine änderung vornehmen, die zu A. Und, wie zuvor angedeutet, Sie nicht wollen, dass die code-änderungen in Spalte A (in diesem Fall) ohne etwas zu brechen Sie aus, dass die rekursive Schleife. Am besten weisen Sie bedingte Formatierung auf eine beliebige Spalte, die Sie zuweisen, wie das Ziel.
Hoffe, das hilft,
n8
InformationsquelleAutor n8.