我想将数据复制到excel上的新行并创建一个新的输入行

时间:2018-01-24 11:57:01

标签: excel vba excel-vba automation

我是excel的VBA新手,我正在尽可能地自动化电子表格。

我附上了一张示例表的图像。我想要做的是将单元格K9 / K10中的数据复制到左侧表格的新行中。这个表每周增加行数,我希望能够自动化这个过程,所以我可以点击一个按钮,数据会自动输入到正确的列中,并且所有内容都会自动填充。

enter image description here

我希望这是有道理的!

谢谢!

1 个答案:

答案 0 :(得分:0)

我不确定你是如何计算Processed的值的,但是下面的代码会添加一个新行并填充除了那个之外的每个字段,只需将代码放在你正在使用的Sheet下。

这也假定您的百分比是使用公式计算的,该公式将被放入新行而无需显式添加。

它将检查单元格K10中的更改,如果某些内容发生了变化,它将获取值并在表格中添加一行:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$K$10" Then
        Dim ws As Worksheet: Set ws = Sheets("Sheet1")
        'declare and set your worksheet, amend as required
        LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
        'get the last row with data on Column A
        ws.Cells(LastRow + 1, 1).Value = ws.Cells(LastRow, 1) + 1 'add one to the Week Number
        ws.Cells(LastRow + 1, 2).Value = ws.Cells(LastRow, 2) + 7 'add 7 to the Week Beginning Date
        ws.Cells(LastRow + 1, 3).Value = ws.Range("K9").Value + ws.Range("K10").Value 'get the Total
        ws.Cells(LastRow + 1, 4).Value = ws.Range("K9").Value 'copy the Passes
        ws.Cells(LastRow + 1, 5).Value = ws.Range("K10").Value 'copy the Fails
    End If
End Sub

您需要做的就是打开工作簿,按Alt + F11,然后打开VBA环境,然后双击您正在使用的工作表并将其粘贴到那里,如下图所示:

enter image description here