2017-04-11 1 views
2

Ich habe drei Teile für dieses Problem. Ich habe eine einzelne Zelle mit einer Wochennummer in Sheet1! A1. Ich habe einen statischen Bereich in Sheet1! B1: F1, der kopiert werden muss. Dann muss ich den Wert in einem dynamischen Bereich in Sheet2 versetzt um die Wochennummer für Zeilen einfügen. Dies ist Teil eines größeren Makros, das ich für ein Blatt schreibe, das ich regelmäßig benutze, aber ich scheine diese Teile unten zu haben. Ich mag entweder zu einfach oder zu sehr vereinfachend sein, aber das ist es, was ich gerade habe.Kopieren Sie einen statischen Bereich auf einem Blatt, und fügen Sie einen dynamischen Bereich in einem anderen Blatt basierend auf einem einzelnen Wert in einer Zelle ein

Sub CopyPaste() 
    Sheets(1).Range("B1:F1").Copy 
    OffsetRange = Sheets(1).Cells(1,1).Value 
    Sheets(2).Cells(1+OffsetRange,1).Paste 
End Sub 

Als ich dies ausführen, entweder es gibt mir einen Runtime Error 9 oder Runtime Error 438.

Wer weiß, was diese Fehler verursacht? Wenn ich den Bereich einfüge, zeigt das Zellenobjekt auf die erste Zelle des kopierten Bereichs, wenn ich an der Stelle einfüge?

Antwort

1

Probieren Sie es wie

Option Explicit 

Sub CopyPasteOffset() 
    Dim OffsetRange As Long 
    OffsetRange = Worksheets(1).Cells(1, 1).Value 
    Worksheets(1).Range("B1:F1").Copy _ 
     Destination:=Worksheets(2).Cells(1 + OffsetRange, 1) 
End Sub 

Das .Paste Verfahren ein Mitglied von Arbeitsblatt ist, nicht Reichweite oder Zellen. Sie können es mit .PasteSpecial verwechselt haben, das ein Mitglied des Bereichsobjekts ist. In jedem Fall ist dies nicht notwendig, da ein Ziel direkt auf den Kopierbefehl angewendet werden kann.

+0

Ziel: = gibt mir "Erwartet: Ausdruck", und Ziel = gibt mir "Variable nicht definiert" –

+0

Haben Sie einen Unterstrich nach '.Copy _' gesetzt? Hast du die Befehle wie ich neu angeordnet? – Jeeped

+0

Ich sehe das Problem. Ich hatte keinen Platz zwischen Kopie und dem _. Gibt es eine Möglichkeit, das Ziel der zu kopierenden Kopie einzufügen, um spezielle Werte einzufügen? Der ursprüngliche Code enthält keine Paste-Aktion, also war ich neugierig, wie ich das erreichen könnte? –

Verwandte Themen