Страницы: 1
RSS
VBA: Поиск последней строки
 
Всем привет!
Записываю макрос, скопировать - найти последнею строчку в таблице (простой) - вставить данные на строчку ниже.
Получается вот так
Код
Selection.End(xlDown).Select
    Range("B7").Select
т.е. записывается строго "B7" а как от этого уйти?
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
 
Цитата
Александр написал:
строго "B7
А почему должно быть иначе, если явно указано
Цитата
Александр написал:
Range("B7").Select
Тогда уж
Код
Selection.End(xlDown).Offset(1, 0).Cells(1, 1).Value = "чему-то там"
 
ТЫЦ
 
Код
  Dim r
  r = Selection.End(xlDown).Row
  Rows(r).Copy: Rows(r).Insert Shift:=xlDown
  Application.CutCopyMode = False
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
dell
Изменено: Александр - 18.04.2019 13:58:29
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
 
Более 2х часов уже бьюсь. И так и сяк пробывал, по вашим советам- не получается :(
Как выглядит код в макроредакторе
Код
    Sheets("??").Select
    Range("C12:X12").Select
    Selection.Copy
    Sheets("??").Select
    Range("B2").Select
    Selection.End(xlDown).Select
    Range("B6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub
т.е. я копирую на листе 1 фиксированный диапазон дат (строку) и на другом листе ее вставляю, тут и проблема, нужно найти последнюю строку уже имеющихся данных и поместить данные ниже.
Изменено: Александр - 18.04.2019 13:32:49
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
 
Я бы решал так:
Set SelectRow = Range("B1").End(xlDown).Offset(1,0)
NumberRow = SelectRow.Row
NumberCoumn = Range("B1").Column

Cells(NumberRow, NumberCoumn) - 'это будет первая пустая ячейка
 
Александр Вы же специалист, и в работу вроде берете, заблудились в трех соснах? Приложите пример.
Изменено: skais675 - 18.04.2019 13:53:15
 
skais675, Я в VBA не работаю
PDOваш код как то не так работает, вставляет только в заранее выделенную ячейку
Изменено: Александр - 18.04.2019 13:54:48
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
 
А как вы собирались решить это задание без VBA?
Изменено: skais675 - 18.04.2019 13:55:45
 
Цитата
skais675 написал: А как вы собирались...
А Планета на что  ;)  
Согласие есть продукт при полном непротивлении сторон
 
Пример простой, из Лист1 данные копируются и вставляются в ниже стоящую строку Лист2
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
 
skais675, Вы меня прям скомпрометировать пытаетесь? :) я делаю только через PQ
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
 
Александр Нет, я просто удивился.
 
Код
Sub Alex()
With Worksheets("Лист2")
    Worksheets("Лист1").Range("B4:L4").Copy .Range("B" & .Cells(.Rows.Count, "B").End(xlUp).Row + 1)
End With
End Sub
Изменено: Sanja - 18.04.2019 14:16:20
Согласие есть продукт при полном непротивлении сторон
 
Код
Sub Button1_Click()
    With Sheets("Лист2")
        Range("B4:L4").Copy .Range("B" & .Cells.SpecialCells(xlLastCell).Row + 1)
    End With
End Sub

Изменено: skais675 - 18.04.2019 14:11:53
 
Конечно не работает, это просто пример того как найти первую пустую ячейку.
Если нужно скопировать то
Логика работы кода, предполагает что при запуске макроса вы находитесь на втором листе.

Set SelectRow = Sheets(2).Range("A10000").End(xlUp).Offset(1, 0)
NumberRow = SelectRow.Row
NumberCoumn = Range("A1").Column
Sheets(1).Range("A4:F4").Copy
Sheets(2).Cells(NumberRow, NumberCoumn).PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveSheet.Paste
Изменено: PDO - 18.04.2019 14:17:51
 
skais675, Спасибо, но код Sanja, мне больше нравится :)
Мне не нужна кнопка, и ссылаться мне нужно на конкретный лист, а не активный.
Только как учесть спец вставку (мне формулы убить и вставить только значения)
попробовал так, не получилось :)
Код
Cells.SpecialCells(xlLastCell)(.Rows.Count, "B")
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
 
Александр так и знал, что дальше последуют следующие вопросы, Вы почитайте хоть литературу - куча примеров. То что Вы спрашиваете - это элементарные вещи - ничего особенного.
Код
Sub Копирование_Вставка_Очистка()
    Range("H2:L" & lr2).Copy
    Range("AA2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
     Range("A1").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Range("A7:F7").ClearContents
End Sub
Изменено: skais675 - 18.04.2019 14:32:49
Страницы: 1
Наверх