Перенос данных в пустую (последующую) ячейку

Автор ASmith, 17.10.2013, 14:18

« назад - далее »

ASmith

Собственно есть простая кнопка, с простым макросом, где всего 2 действия (скопировать и вставить) повторяется 3 раза.

Private Sub рара_Click()
'
' Перенос Макрос
'
' Сочетание клавиш: Ctrl+r
'
    Range("C8:H8").Select
    Selection.Copy
    Range("R8").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("K8:L8").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("X8").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("O8").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("AB8").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("Q2").Select
End Sub

Помогите пожалуйста переписать код так, что бы скопированные данные переносились (копировались) не в определенный ячейки, а в свободные, что бы список мог последовательно анполняться. Так же читал, что есть возможность сделать функцию автоматического заполнения даты после нажатия кнопки.
Либо просто покажите любой пример, чтоб ы можно было переносить определенный данный в другую табличцу по порядку, что бы новое не заменяло старое, а дописывалось ниже и ниже.
Заранее больоше спасибо.

cheshiki1

#1
Dim lLastRow As Long
Dim lLastCol As Long
lLastRow = Cells(Rows.Count,1).End(xlUp).Row 'последняя заполненная строка в 1 столбце
lLastCol = Cells(1, Columns.Count).End(xlToLeft).Column 'последний заполненный столбец в 1 строке

cheshiki1


Private Sub рара_Click()
'
' Перенос Макрос
'
' Сочетание клавиш: Ctrl+r
'
Dim lLastRow As Long
lLastRow = Cells(Rows.Count, "R").End(xlUp).Row 'последняя заполненная строка
    Range("C8:H8").Copy
    Range("R" & lLastRow + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("K8:L8").Copy
    Range("X" & lLastRow + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("O8").Copy
    Range("AB" & lLastRow + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("Q2").Select
End Sub


ASmith

Больоше спасибо за ответ, но почему-то формула не работает, пишет - "для этого необходимо одинаковый размер ячеек"
Делал обсалютно все ячеки одного размера, но это не помогло. В чем может быть проблема, не понимаю.

cheshiki1


ASmith

Лист - "Неисправности"
Левая таблица формируется автоматически и обновляется и мне хотелось бы с помощью кнопок копировать частично данные в правую таблицу, при этом нужно что бы каждая перемещенная запись дописывалась в таблицу, не заменяя предыдущие записи. Таким образом правая будет постоянно накапливать данные.

cheshiki1

копироваться всегда будет только первая строчка или как?

ASmith

Нет. Я хочу сделать несколько кнопок (например 10) на каждую строчку левой таблицы. И на выбор буду перемещать с левой в правую.
Левая не думюа чтоб удет привышать лимит в 10 строк, а вот правая будет наполнятся постоянно

cheshiki1

#8
предлагаю вариант: становитесь в любую ячейку нужной строки и жмете переместить.

ASmith

Ого! Вот это шикарно просто! Огромнейшее спасибо за это! Это даже лучше и удобнее чем я хотел изначально.
Сечас буду сидеть разбираться, пробывать сделать похожее что бы полностью понять этот код.
Еще раз большое спасибо =))