Заполнение ячеек, новая запись всегда вверху с добавленным к ней порядковым номером

0

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

Что мне нужно сделать, так это заполнить список на отдельном листе («машины») в рабочей книге из другого листа («NewMachine»), на котором я ввожу информацию, эта введенная информация на листе «NewMachine» очищена и готова для другого запись.

Я хотел бы, чтобы новые записи входили в начало списка и добавляли к этой строке 2 последовательных номера, соответствующих новой записи.

по существу

Столбец A Столбец B Столбец C

... ... ...

2 2 Информация

1 1 Информация

Вот код, который у меня есть:

Sub capturedata()

Dim wks As Worksheet
Dim lastrow As Long

Set wks = Sheets("Machines")

lastrow = wks.Range("A:A").Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row


wks.Cells(lastrow + 1, 3).Value = Cells(6, 2).Value
wks.Cells(lastrow + 1, 4).Value = Cells(7, 2).Value
wks.Cells(lastrow + 1, 5).Value = Cells(8, 2).Value
wks.Cells(lastrow + 1, 6).Value = Cells(9, 2).Value
wks.Cells(lastrow + 1, 7).Value = Cells(10, 2).Value
wks.Cells(lastrow + 1, 8).Value = Cells(11, 2).Value
wks.Cells(lastrow + 1, 9).Value = Cells(12, 2).Value
wks.Cells(lastrow + 1, 10).Value = Cells(13, 2).Value
wks.Cells(lastrow + 1, 11).Value = Cells(14, 2).Value


Range("B6:B14").ClearContents

End Sub

Это позволяет мне вводить информацию для заполнения списка сверху вниз, но не намного.

aschark
источник

Ответы:

0

новые записи появляются вверху списка

Вставьте новую строку выше 2-й строки вместо поиска lastrow

Также вы можете скопировать весь диапазон один раз вместо прохождения каждой ячейки.

Sub capturedata()

    Dim wks As Worksheet

    Set wks = Sheets("Machines")

    With wks
        .Rows(2).EntireRow.Insert
        .Range("C2:K2") = Range("B6:B14").Value
    End With

    Range("B6:B14").ClearContents

End Sub
Мате Юхас
источник
Привет @ Мате, спасибо за ваш ответ. Хотя, используя ваш код, я вводю свои данные на одном листе для переноса на другой, но когда я нажимаю кнопку для выполнения макроса, записывается первая введенная мной ячейка во всей строке, в которой должна быть вся информация отображается?
Ашарк
Я проверил это, и это работает для меня. Пожалуйста, попробуйте отладить его.
Мате Юхас