如何从一个表通过VBA在Microsoft Excel的传送专用数据到另一个
在本文中,我们将根据特定条件使用工作表的change事件将一个表的数据传输到另一个表。
原始数据由客户详细信息组成,其中包括姓名,街道地址,城市,地区,国家和电话号码。
在本文中,我们希望传输不符合特定优惠条件的那些客户的数据。如果客户不符合特定优惠条件,则最后一列包含“ Not”作为值。我们想将那些“不合格”的客户复制到“ NotEligibleData”表中。
代码说明
如果Target.Column = 7,则以上代码用于限制工作表的更改事件仅在更改第7 ^ th ^列中的值时执行。
Sheets(“ NotEligibleData”)。Range(“ A2:I600”)。ClearContents上面的代码用于从范围A2:I600 Sheets(“ Main”)。Cells(i,“ G”)。EntireRow.Copy中删除该值目的地:= Sheets(“ NotEligibleData”)。Range(“ A”&Rows.Count).End(xlUp).Offset(1)
上面的代码用于将不符合条件的客户复制到“ NotEligibleData”表中。
请遵循以下代码
Private Sub Worksheet_Change(ByVal Target As Range) 'Declaring variables Dim i, Lastrow As Long 'Execute code if value in seventh column is changed If Target.Column = 7 Then 'Getting the row number of last cell Lastrow = Sheets("Main").Range("A" & Rows.Count).End(xlUp).Row 'Deleting any previous data from "NotEligibleData" sheet Sheets("NotEligibleData").Range("A2:I600").ClearContents 'Looping from tenth row to last row For i = 10 To Lastrow 'If value in G column of the row is "Not" then copy the row to destination sheet If Sheets("Main").Cells(i, "G").Value = "Not" Then Sheets("Main").Cells(i, "G").EntireRow.Copy Destination:=Sheets("NotEligibleData").Range("A" & Rows.Count).End(xlUp).Offset(1) End If Next i End If Range("A1").Select End Sub
如果您喜欢此博客,请在Facebook和Facebook上与您的朋友分享。
我们很希望收到您的来信,请让我们知道我们如何才能改善我们的工作并使您的工作更好。写信给我们[email protected]