Microsoft ExcelでVBAを通じて別のシートから特定のデータを転送する方法
この記事では、ワークシートの変更イベントを使用して、特定の条件に応じて、あるシートから別のシートにデータを転送します。
生データは、名前、住所、市、地域、国、電話番号などの顧客の詳細で構成されます。
この記事では、特定のオファーの対象とならない顧客のデータを転送したいと思います。顧客が特定のオファーの対象とならない場合、最後の列には値として「Not」が含まれます。これらの「資格のない」顧客を「NotEligibleData」シートにコピーしたいと思います。
コードの説明
If Target.Column = 7 Then上記のコードは、ワークシートの変更イベントが7 ^ th ^列の値が変更された場合にのみ実行されるように制限するために使用されます。
Sheets( “NotEligibleData”)。Range( “A2:I600″)。ClearContents上記のコードは、範囲A2:I600 Sheets( “Main”)。Cells(i、 “G”)。EntireRow.Copyから値を削除するために使用されます。 Destination:= 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]までご連絡ください