Добавить данные после нажатия кнопки на следующий лист и затем


-1

Я хотел бы спросить, как добавить, скопировать и отобразить рядом с другим листом. Например, у меня есть данные в столбце A в строках 1–4 и кнопка с именем «сохранить» на листе 1. Когда я нажимаю кнопку «Сохранить», данные на листе 1 будут скопированы на лист 2 в том же столбце и строке.

Когда у меня появятся новые данные, они будут добавлены в строку 2 из строки 1 под листом 2.

Данные должны быть такими:

Лист1

Name Address Age Birthdate

Лист2:

Row1:Name   Row1:Address    Row1:Age    Row1: Birth date;
Row2:Name   Row2:Address    Row2:Age    Row2: Birth date

Ответы:


0

Как вы и требовали, я установил строку 2 листа 1 как строку ввода данных, каждый раз, когда вам нужно записать данные в строку 2, и Excel добавит новую запись в лист 2 после существующей записи.

Затем после Excel удалит новую запись из строки 2 на листе 1 и поместит указатель ячейки в ячейку A2, чтобы вы могли записать новую запись.

Private Sub CommandButton2_Click()

Application.ScreenUpdating = False

  Dim copySheet As Worksheet
   Dim pasteSheet As Worksheet

    Set copySheet = Worksheets("Sheet1")
     Set pasteSheet = Worksheets("Sheet2")

       copySheet.range("A2:D2").Copy
       pasteSheet.Cells(Rows.count, 1).End(xlUp).offset(1, 0).PasteSpecial

        xlPasteValues
       Application.CutCopyMode = False

      Worksheets("Sheet1").Rows(2).EntireRow.Delete
    Range("A2").Select

  Application.ScreenUpdating = True

End Sub

NB. В этом примере кода я использовал строку 2 для ввода данных, если вы чувствуете, что можете ее изменить.


Привет Раджеш ... вау .... отличные коды. это действительно работает ..... спасибо оооочень много .... больше сил для вас.
EG

Приятно слышать от вас и рады узнать, что вы получили решение. Теперь ваша крачка, чтобы проголосовать как ответ.
Раджеш С

0

Я хотел бы предложить вам очень простую связку кодов VBA.

Он будет копировать каждую новую строку с листа 1 на лист 2 каждый раз, когда вы нажимаете кнопку «Команда».

Кроме того, сначала скопируйте заголовки строк на обоих листах, затем напишите «Новая запись» и, наконец, нажмите кнопку «Команда».

Private Sub CommandButton1_Click()

   Application.ScreenUpdating = False

     Sheets("Sheet1").Activate

       range([A2], ActiveSheet.UsedRange).Copy

        Sheets("Sheet2").Cells(1, 1).PasteSpecial Paste:=xlPasteValues

           Application.CutCopyMode = False

        Sheets("Sheet2").Cells.EntireColumn.AutoFit

     Application.ScreenUpdating = True

End Sub

NB. В моем примере кода исходной ячейкой является A2, вы можете выбрать ячейку по своему выбору.


Отформатируйте код, выбрав его полностью, а затем нажмите значок «Код» в строке меню. Это выглядит так: {}
Bandersnatch

Привет Раджеш, спасибо. Я очень ценю ваши коды.
EG

Привет Раджеш, спасибо. Я очень ценю ваши коды. Я попробовал это, и это работает. Немного того, чего я хочу. Код у вас есть на первом этапе. однако, если у меня есть новое имя, такое как Y, на листе 1 в той же строке, имя Y должно отображаться в следующей строке на листе 2. Это больше похоже на лист 1, это ввод данных. лист 2 подобен серверу данных, который сохранен из данных, закодированных в листе 1. Заранее спасибо. Я тоже здесь пытаюсь. В любом случае, отличный код! Спасибо :)
EG

Строка 2 аналогична записи данных на листе 1. Строки на листе 2 должны быть похожи на приемник данных, в которых они были сохранены. Если у меня есть данные, которые я печатаю в строке 2 на листе 1, данные должны отображаться в строке 2. если у меня есть новые данные, которые я печатаю в строке 2 на листе 1, данные должны отображаться в строке 3. если у меня есть другие новые данные, которые я печатаю в row2 в sheet1, должны отобразиться другие данные в row4 в sheet2.
EG

@EG ,, приятно слышать от вас, так как вы нашли код работающим и полезным для вас, затем нажмите его как ОТВЕТ.
Раджеш С

0

Привет, похоже, я нашел коды ответов.

Я хотел бы поделиться.

Dim nextrow As Long
nextrow = Worksheets("Sheet2").Cells(Rows.Count, "B").End(xlUp).Row + 1
If nextrow < 3 Then nextrow = 3

Worksheets("Sheet1").Range("A2:D2").Copy Worksheets("Sheet2").Range("B" & nextrow)

также при этом путь ссылки. Как создать макрос, который будет передавать данные на другой лист, начиная с определенной ячейки и (при последующих вызовах) работать вниз?

Большое спасибо


0

Вместо моих запросов ... это ответ @Rajesh. Спасибо!

Частный Sub CommandButton2_Click ()

Application.ScreenUpdating = False

Dim copySheet As Worksheet Dim pasteSheet As Worksheet

Set copySheet = Worksheets("Sheet1")
 Set pasteSheet = Worksheets("Sheet2")

   copySheet.range("A2:D2").Copy
   pasteSheet.Cells(Rows.count, 1).End(xlUp).offset(1, 0).PasteSpecial

    xlPasteValues
   Application.CutCopyMode = False

  Worksheets("Sheet1").Rows(2).EntireRow.Delete
Range("A2").Select

Application.ScreenUpdating = True

End Sub

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.