2016-05-09 17 views
0

Ich habe versucht, eine Schaltfläche zu erstellen und ihr ein Makro zuzuweisen. Wenn traf ich die Taste, um das Makro auszuführen heißt es:Excel VBA: Runtime-Error 438

Laufzeitfehler 438: Objekt nicht diese Eigenschaft oder Methode

Und den folgenden Code-Zeile wird markiert unterstützt:

Hier
With Sheets("1. Stock & Demand") 
    .Range("F3:F3").End(xlToRight).Offset(-2, 1).Paste 
End With 

ist der vollständige Code:

Sub NeuerTag() 

'Abfrage ob der Tag eingefügt werden soll, No = QUIT' 
If MsgBox("Möchtest du die Tabelle vorbereiten?", vbYesNo) = vbNo Then Exit Sub 

'Copies the last three coloumns of the Worksheet 1. Stock & Demand' 
With Sheets("1. Stock & Demand") 
Lastcol = .Cells(1, .Columns.Count).End(xlToLeft).Column 
.Columns(Lastcol - 1).Resize(, 1).Copy 
End With 

'Selects the first empty cell in 1. Stock & Demand and pastes' 
With Sheets("1. Stock & Demand") 
.Range("F3:F3").End(xlToRight).Offset(-2, 1).Paste 
End With 

'Pastes the Today()' 
With Sheets("1. Stock & Demand") 
.Range("F3:ZZ3").End(xlToRight).Offset(-1, 0).Value = Date 
End With 

'Paste Special - Values' 
With Sheets("1. Stock & Demand") 
Lastcol = .Cells(1, .Columns.Count).End(xlToLeft).Column 
.Columns(Lastcol - 3).Resize(, 1).PasteSpecial Paste:=xlPasteValues 
End With 

End Sub 

Antwort

0

ich denke, dass .offset haben Sie nicht .paste Methode, so versuchen Sie zu verwenden .pasteSpecial

+0

Danke, das hat funktioniert! Aber jetzt '.Columns (Lastcol - 3) .Resize (, 1) .PasteSpecial Paste: = xlPasteValues' gibt mir einen Fehler. Weißt du, warum? – Bluesector

+0

Ich weiß nicht, welchen Fehler es Ihnen gibt, aber von Ihrem Code wahrscheinlich, weil Sie keine Zeilenparameter in '.Resize' haben –

+0

Es sagt ** Laufzeitfehler 1004: Anwendungsdefiniert oder objektdefinierten Fehler **. Ich habe einen Zeilenparameter hinzugefügt, aber es ändert nichts. – Bluesector