-1

Я хотел бы спросить, как добавить, скопировать и отобразить рядом с другим листом. Например, у меня есть данные в столбце A в строках с 1 по 4 и кнопка с именем save на листе 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

4 ответа4

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

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

0

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

Частный Sub CommandButton2_Click()

Заявка.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

Заявка.ScreenUpdating = True

End Sub

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, вы можете выбрать ячейку по вашему выбору.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .