2016-12-07 4 views
1

Я использую это, чтобы переместить заказы с новой страницы заказов на предыдущую страницу заказов, однако я получаю ошибку заголовка, когда я пытаюсь запустить ее. Я просмотрел несколько разных мест, чтобы попытаться заставить его работать, и я вижу, что их работа должна работать, а моя - нет.VBA: PasteSpecial метод класса Range failed

Sheets("New_Orders").Range("B3:E29").Cut 

Sheets("Previous_Orders").Range("B31").PasteSpecial Paste:=xlPasteValues 

Это больше кода, который должен сделать то же самое, что не работает ни

Sheets("New_Orders").Select 
Range("B3:E29").Select 
Selection.Cut 
Sheets("Previous_Orders").Select 
Range("B:B").Find("").Select 
ActiveSheet.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 

Я попытался Selection.Copy, а также. Это дало ту же ошибку

+3

Вы можете вставить все или вставить с помощью выреза. –

+3

[Must. Прочитайте.] (Http://stackoverflow.com/q/10714251/1188513) –

+0

Должен смотреть: [Введение в Excel VBA] (https://www.youtube.com/playlist?list=PLNIs-AWhQzckr8Dgmgb3akx_gFMnpxTN5). Это соответствующее видео: [Введение в VBA VBA Часть 5 - Выбор ячеек (диапазон, ячейки, Activecell, End, Offset)] (https://www.youtube.com/watch?v=c8reU-H1PKQ&list=PLNIs-AWhQzckr8Dgmgb3akx_gFMnpxTN5&index= 5 & ​​t = 3072s) –

ответ

2

Как указано выше в комментарии, вы можете вставлять все только при использовании Cut. Если нужны только значения, то сразу назначьте значения, затем очистите диапазон.

Sub foo() 
Dim rng As Range 
Dim lastRow As Long 

Set rng = Sheets("New_Orders").Range("B3:E29") 
With Sheets("Previous_Orders") 
    lastRow = .Cells(.Rows.Count, 2).End(xlUp).Row + 1 
    .Cells(lastRow, 2).Resize(rng.Rows.Count, rng.Columns.Count).Value = rng.Value 
End With 
rng.Clear 
End Sub 
+1

Но это не объясняет комментарий, отредактированный в вопросе, то есть 'я тоже попытался Selection.Copy. Это дало ту же ошибку' (Но я не могу заставить ActiveSheet.PasteSpecial работать в любом случае - я бы подумал, что это должно быть «ActiveCell.PasteSpecial» - поэтому я не слишком уверен, насколько точны «те же самые» error ".) – YowE3K

+0

Просто набрал то же самое, когда увидел ваше редактирование @ YowE3K. Он должен работать с ActiveCell и Copy. –

+0

Когда я запускаю его, он дает мне ошибку времени выполнения «1004»: определяемая приложением или объектная ошибка. –

Смежные вопросы