Ich habe eine Excel-Tabelle mit einer benannten Tabelle erstellt. Am linken Rand der ersten Zeile habe ich ein Schaltflächen-Steuerelement mit der Bezeichnung "+" hinzugefügt. Diese Schaltfläche führt ein Makro aus, das immer eine neue letzte Zeile am Ende der Tabelle hinzufügt. Jede neue Zeile enthält auch eine Kopie dieser Schaltfläche (obwohl sich die Schaltfläche selbst in Spalte A nicht im Bereich der benannten Tabelle befindet). Wie auch immer, all diese generischen Tasten funktionieren genauso.
Nun möchte ich auf die gleiche Weise eine weitere Schaltfläche ("-") hinzufügen, diesmal möchte ich jedoch die Zeile der Schaltfläche, auf die ich geklickt habe, ENTFERNEN. Dazu muss ich die genaue Schaltfläche identifizieren, auf die geklickt wurde, und die Zeile herausfinden, in der sie platziert ist.
Es sieht aus wie das:
Ist das überhaupt möglich und wie?
BEARBEITEN : Um die Kommentare zu adressieren:
Code zum Hinzufügen einer neuen Zeile am Ende:
ActiveSheet.ListObjects("TimeSheetTable").Resize Range("$B$" & HEADERROW & ":$H$" & iNewRow)
'Duplicate the previous row
Rows(iNewRow- 1).Select
Application.CutCopyMode = False
Selection.Copy
Rows(iNewRow).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Antworten:
Ich möchte Ihnen vorschlagen, den folgenden VBA-Code zu verwenden. Sie müssen es mit der Befehlsschaltfläche aufrufen, auf die geklickt wurde.
Hoffe das hilft dir.
quelle
Ich habe noch eine Lösung, die viel einfacher ist und die geklickte Schaltfläche direkt identifiziert. Der Umfang ist begrenzt, aber für ALLE einfach und verständlich.
NB: Zusammen mit diesem Code können andere VBA-Codes enthalten sein oder er kann innerhalb des anderen Codes aufgerufen werden.
quelle
Sub
für jede Schaltfläche eine eigene erstellt werden, was in diesem Fall nicht möglich erscheint, da die Anzahl der Schaltflächen dynamisch ist.