2016-04-26 10 views
0

What I start withErstellen Sie ein Makro neue Zeile hinzufügen, die Drop-Down-Optionen

This is what I want it to do, but for every row

Hier ist das Makro, das erstellt wurde, umfasst, als ich einfach die erste Zeile kopiert und eingefügt. Dies kopiert die Dropdown-Menüs für die Spalten B und C, die ich für jede neue Zeile benötige. Es kann also nicht nur die Werte kopieren, die in der zu kopierenden Zeile erscheinen, sondern auch die Dropdown-Liste (die neue Zeile kann über oder unter dem Rest liegen). Kann der folgende Code optimiert werden?

Sub AddLine() ' ' Macro AddLine ' ' Tastenkombination Strg + Shift + A " Range ("B4: C4"). Wählen Selection.Copy

Range("B5:C5").Select 
ActiveSheet.Paste 

Range("D5").Select 
Application.CutCopyMode = False 

Range("B5").Select 

End Sub

Antwort

0

Unten ist ein Ansatz. Er kopiert die Validierung (nur die Validierung) von B4:C4 und fügt sie eine Zeile unterhalb der ActiveCell ein. Vorausgesetzt, der Cursor ist überall in Zeile 6, wenn Sie dieses Makro ausführen, werden die Validation Dropdown-Felder in Zellen B7:C7 kopiert.

Sub CopyValidation() 
    Dim rCopy As Range 


    Application.ScreenUpdating = False 

    Set rCopy = ActiveSheet.Range("B4:C4") 

    rCopy.Copy 
    ActiveSheet.Range("B" & ActiveCell.Row + 1).PasteSpecial xlPasteValidation 
    Application.CutCopyMode = False 

    Application.ScreenUpdating = True 
End Sub 

Benötigen Sie das?

+0

Damit ist die Arbeit erledigt! Ich habe selbst etwas herausgefunden (klicke auf "relative Verweise verwenden", wenn ich das gleiche Makro aufnehme). Aber mit Ihrem Code muss ich nicht in der B-Spalte sein, damit es funktioniert. Vielen Dank! –

+0

@TanyaChy Gut zu hören. Oft gibt es viele Wege, um zu unserer Antwort zu kommen, und es geht darum, den besten herauszufinden. Es ist gut, dass Sie einen Teil des Problems selbst lösen konnten! – user3561813