2016-11-18 4 views
0

Ich habe ein Problem in meiner Formel. Überprüfen Sie den Code unten.Ziel + Einfügen Spezialfehler VBA

With Worksheets("L.NAM.O") 
     With .Cells.Find(What:="record ID", After:=ActiveCell, LookIn:= _ 
      xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _ 
      xlNext, MatchCase:=False, SearchFormat:=False) 
      .Parent.Range(.Offset(1), .Parent.Cells(Rows.Count, .Column).End(xlUp)).Copy Destination:=Worksheets("NewForecast").Range("D35").PasteSpecial(xlPasteValues) 
     End With 
    End With 

Im Ziel, wenn Sie meine Werte einfügen, will ich es Paste Werte, aber dieser Fehler kommt sein: „Laufzeitfehler 1004: kann nicht erhält die Paste Eigenschaft der Range-Klasse.“ Irgendwelche Ideen, wie man es löst? Danke vielmals!

+1

die Paste Sonderziel als separate Put command - 'Copy Destination: =' funktioniert nur mit einer Basiskopie. Also "..... Kopieren" und dann "Arbeitsblätter (" NewForecast "). Bereich (" D35 "). PasteSpecial (xlPasteValues)' –

+1

Es wird auch Fehler, wenn 'Datensatz-ID' nicht gefunden wird. Verwenden Sie eine Bereichsvariable, um das FIND-Ergebnis zu speichern, und aktivieren Sie dann "Wenn keine Variable ist nichts, dann .... kopieren und einfügen" –

+0

Vielen Dank für Ihre Antwort. Aber kannst du mir das in einem Code zeigen? Ich bin noch nicht so gut .. –

Antwort

1

Werte einfügen Sie Copy() Methode vermeiden konnte und nur Value Eigenschaft Range Objekt verwenden:

Ersatz:

.Parent.Range(.Offset(1), .Parent.Cells(Rows.Count, .Column).End(xlUp)).Copy Destination:=Worksheets("NewForecast").Range("D35").PasteSpecial(xlPasteValues) 

mit:

With .Parent.Range(.Offset(1), .Parent.Cells(Rows.Count, .Column).End(xlUp)) 
    Worksheets("NewForecast").Range("D35").Resize(.Rows.Count).Value = .Value 
End With 
+0

Sie user3598756 immer spart mich! Haha. Vielen Dank! Das funktioniert genau so, wie ich es möchte. =) –

+0

Gern geschehen. Gute Codierung! – user3598756