2017-02-22 18 views
-3

Я пытаюсь вырезать и прошлые значения из диапазона ячеек на листе 1 до следующего доступного ряда на листе 2. Все руководства и советы видел для копирования и вставки и для одного листа.Вырезать и вставить значения из листа 1 в следующую доступную строку на листе 2

Диапазон на листе 1 - это E5-H5, который нужно вырезать, не копировать, а затем вставлять в лист 2, ячейки E7-H7 или следующую доступную строку ниже, так как каждый раз, когда кто-то вводит данные, мне нужен лист 2, чтобы сохранить его ,

+3

переполнения стеки не услуга написания кода. Люди приходят сюда с определенными проблемами, которые у них есть с их кодом. Существуют и другие сайты, которые помогут вам узнать, как закодировать VBA. –

ответ

0

Нижеприведенный код скопирует ваш диапазон и ищет 1-ю пустую ячейку (снизу вверх) в столбце E, лист 2, для вставки. Надеюсь это поможет.

Sub CutPaste() 

Dim Lastrow As Long 

ThisWorkbook.Sheets("Sheet1").Range("E5:H5").Copy 
Lastrow = Sheets("Sheet2").Cells(Rows.Count, 5).End(xlUp).Offset(1, 0).Select 
Selection.PasteSpecial 

End Sub 

Как вы новичок в Stack Overflow и, вероятно, Vba, а также, просто стараюсь придерживаться выше комментарии по пэ. Ваш вопрос, в то время как не определенно, легко поддается поиску по частям. Кроме того, если это ответит на ваш вопрос, отметьте его.

+0

Спасибо за помощь. Я новичок и извиняюсь за неправильное использование веб-сайта. – skip

+1

Спасибо за помощь. Я новичок и извиняюсь за неправильное использование веб-сайта. Я пробовал искать различные части макроса, который мне нужен, и, к сожалению, не могу найти то, что я ищу, поскольку все, что я нахожу в Google, - это как копировать и вставлять. Я бы разместил код, который ive попробовал печатать, но боялся, что было так много ошибок с ним, что это было бы тратой всякого времени, пытаясь расшифровать его. Я пробовал код, который вы так любезно предоставили мне, и обнаружил, что он не работает. я получаю ошибку 1004. Не уверен, что это значит. – skip

+1

Не используйте select. Я опубликую ниже приведенное ниже изменение, но отметьте KoderM16 так же корректно, как он сначала помог вам, я просто вытащил выделение и очистил код. –

1

Не выбирайте. Я отправляю этот ответ больше, чтобы помочь @ KoderM16 улучшить свои методы, чем ответить на исходный вопрос:

Sub CutPaste() 
ThisWorkbook.Sheets("Sheet1").Range("E5:H5").Copy 
Sheets("Sheet2").Cells(Rows.Count, 5).End(xlUp).Offset(1, 0).PasteSpecial 
End Sub 

Кроме того, это не имеет смысла, поскольку это возвращает истину или ложь (скорее всего, всегда будет верным, потому что она может в Дело в том, что выбрать адрес):

Lastrow = Sheets("Sheet2").Cells(Rows.Count, 5).End(xlUp).Offset(1, 0).Select 

вы хотели бы .row на конце вместо .select, если вы хотите назначить строку Lastrow, вы, однако, не используйте lastrow.

С вашим кодом, как это, lastrow, скорее всего, всегда будет -1, как это значение для истинного

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