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

-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

НАПРИМЕР
источник