Нужна помощь с Vba в Excel

Тема в разделе "Visual Basic", создана пользователем RainKate, 24 авг 2009.

  1. RainKate

    RainKate Гость

    Работать с макросами начала буквально несколько дней назад, посему у меня уже есть вопрос, связанный с редактирование кода 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

    Но у меня не получается вставить данные в найденную строку. Видимо я как-то не так обращаюсь к ячейке. Поэтому, если кто-то подскажет, как правильно записать вот этот кусочек вставки записей, то буду очень-очень признательна!
     
  2. alex77755

    alex77755 Well-Known Member

    Регистрация:
    15 фев 2009
    Сообщения:
    128
    Симпатии:
    0
    Можно просто перебором

    i = 1
    While Sheets("sheet1").Range("a" + LTrim(Str(i))) <> Empty
    i = i + 1
    Wend

    Range("A" & i).Select или типа Range("A" & i).value=


    но проще так:

    R = Columns(1).Rows(65536).End(xlUp).Row ' находим номер строки последней записи

    Cells(R + 1, C).Select


    <!--shcode--><pre><code class='VBA'>Sub Кнопка1_Щелкнуть()

    Dim i
    Dim R ' номер последней строки в исходной таблице на Листе2
    Dim Rk 'номер последней строки в накопительной таблице на Листе3


    R = Лист2.Columns(1).Rows(65536).End(xlUp).Row
    Rk = Лист3.Columns(1).Rows(65536).End(xlUp).Row

    For i = 6 To R ' 6 просто номер первой строки таблици

    Лист3.Cells(Rk + i - 5, 1).Value = Лист2.Cells(i, 1).Value

    Next i[/CODE]
    End Sub
     
Загрузка...

Поделиться этой страницей