Работать с макросами начала буквально несколько дней назад, посему у меня уже есть вопрос, связанный с редактирование кода VBA записанного мной макроса.
Итак, суть задачи в том, что при нажатии на кнопку все данные из таблички на текущем листе должны записываться в таблицу на другом листе этой же книги. Причем, если я нажму на кнопку второй раз, то данные снова должны перекинуться в другую таблицу, но не перезаписать уже существующие записи, а добавиться после всех записанных строк, т.е. вторая таблица накопительная. Я так понимаю, что перед тем, как произвести действие Paste нужно произвести поиск первой пустой строки в таблице и в неё записывать.
Вот пример кусочка кода:
Selection.Copy
Sheets("Данные склад").Select
и далее надо производить поиск пустой строки, я попыталась сделать это таким образом:
Set r1 = Worksheets("Данные доставка").Cells(4, 2).CurrentRegion
For j = 5 To r1.Rows.Count
If r1.Cells(5, 5).Offset(j, 5).Value = "" Then
(и тут код, который у меня не работает)
...
End If
Next j
Но у меня не получается вставить данные в найденную строку. Видимо я как-то не так обращаюсь к ячейке. Поэтому, если кто-то подскажет, как правильно записать вот этот кусочек вставки записей, то буду очень-очень признательна!
Нужна помощь с VBA в Excel
Модератор: Naeel Maqsudov
Следующий код вставит выделенный диапазон на активном листе в ячейку столбца "A" требуемого листа, следующую после последней заполненной ячейкой:
Код: Выделить всё
Selection.Copy Sheets("Данные склад").Cells(Rows.Count, "A").End(xlUp).Offset(1)
SAS888, спасибо огромное! Как раз то, что надо =))
спасибо огромное снова :- Но почему-то сработал только второй вариант, там где нет сцеплений подстрок. В первом варианте VBA ругнулся на ":"
RowsSelection.Row&":"&Selection.Row Selection.Rows.Count -1.Delete shift:=xlUp
А в третьем - на ":A":
Range"A"&Selection.Row&":A"&Selection.Row Selection.Rows.Count -1,1.EntireRow.Delete
[*** censored ***]
RowsSelection.Row&":"&Selection.Row Selection.Rows.Count -1.Delete shift:=xlUp
А в третьем - на ":A":
Range"A"&Selection.Row&":A"&Selection.Row Selection.Rows.Count -1,1.EntireRow.Delete
[*** censored ***]
что в первом и третьем вариантах знак "&" должен быть отделен пробелами.
А вообще-то, почему Вас не устраивает удаление строк выделенного диапазона сразу, без определения первой и последней строк? Например, так:
Код:Selection.EntireRow.Delete
А вообще-то, почему Вас не устраивает удаление строк выделенного диапазона сразу, без определения первой и последней строк? Например, так:
Код:Selection.EntireRow.Delete