2017-04-12 2 views
0

Ich versuche, eine Reihe von Zellen zu schneiden und dann den gleichen Bereich eine Zelle über einfügen. Wenn ich diesen grundlegenden Code ausführe, gibt es mir noch Laufzeitfehler 1004 Anwendung oder objektdefinierter Fehler. Warum erhalte ich diesen Fehler? Würde dies stattdessen ein Array erfordern?Einen Bereich schneiden und PasteSpecial Formeln

+0

Sie diese selbst aus einem Arbeitsblatt testen, sondern fügen spezielle Optionen sind nur verfügbar, wenn Sie nicht schneiden kopieren. Sie könnten die ursprünglichen Zellen kopieren und dann löschen. – SJR

Antwort

0

etwas wie das Versuchen:

Sub Cut_Paste 
    Range("D4:F8").Cut Destination:=Range("E4:G8")  
End Sub 
+0

Das hat super funktioniert, danke –

0

Kopieren Sie den größeren Bereich, indem Sie nur die oberste linke Zelle des Ziels verwenden und dann Clear.

Sub Cut_Paste 
    with Range("D4:F8") 
     .copy 
     Range("E4").PasteSpecial xlPasteFormulas 
     .clear 
    end with 
End Sub 
+0

Ich entschuldige mich, ich musste die Frage bearbeiten, die FillRight/Clear-Funktion scheint nur mit einzelnen Spaltenbereichen zu funktionieren, ich muss einen 3-Spalten-Bereich verschieben. Kann dieser Code mit mehr als einer Spalte arbeiten? –

+0

Wahrscheinlich am besten, um dann zu einem PasteSpecial zurückzukehren, aber Sie brauchen nur die obere linke Ecke des Ziels. Dies entfernt eine fehlerhafte Zielbereichsberechnung aus der Betrachtung. – Jeeped

+0

Ich denke, es wird funktionieren, wenn ich nur die Kopie verwenden, dann pasteSpecial, und dann die erste Spalte des ursprünglichen Kopierbereichs löschen. –