单击按钮后将数据添加到下一张表,然后

单击按钮后将数据添加到下一张表,然后

我想问如何添加、复制并显示在另一张表旁边。例如,我在第 1 行到第 4 行的 A 列中有数据,在 Sheet 1 中有一个保存按钮。当我按下保存按钮时,Sheet 1 中的数据将复制到 Sheet 2 的同一列和行上。

当我有新数据时,它将添加到 Sheet2 下的第 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

答案1

按照您的要求,我已将工作表 1 的第 2 行设置为数据输入行,每次您需要在第 2 行写入数据时,Excel 都会在现有记录后将新记录添加到工作表 2 中。

然后 Excel 将从工作表 1 中的第 2 行删除新记录,并将单元格指针放在单元格 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

注意:在此示例代码中,我使用第 2 行进行数据输入,如果您觉得可以更改它。

答案2

我想向您推荐一组非常简单的 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

注意:在我的示例代码中,源单元格是 A2,您可以选择您想要的单元格。

答案3

嗨,看起来我找到了答案代码。

我想分享。

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)

此处还附有链接路径。 如何制作一个宏,将数据传输到另一张工作表,从特定单元格开始,并(在后续调用中)向下进行?

非常感谢

答案4

针对我的疑问...这是@Rajesh 的回答。谢谢!

私有子命令按钮2_Click()

应用程序.ScreenUpdating = False

Dim copySheet 作为工作表 Dim pasteSheet 作为工作表

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

子目录结束

相关内容