回答受付が終了しました

【VBA】複数の条件が一致したら特定の行を別のシートに移動と削除

画像

Visual Basic117閲覧xmlns="http://www.w3.org/2000/svg">500

回答(1件)

0

合計金額が一致しないとメッセージがでます。 「無視」を選べば続行します。 それ以外は中止します。 Option Explicit ' Sub Macro1()     Dim I As Worksheet     Dim D As Worksheet     Dim Sheet As Integer     Dim IEnd As Long     Dim RInp As Long     Dim OEnd As Long     Dim IName As String '     Set I = Sheets(3)     Sheets(4).Select     IEnd = I.Cells(Rows.Count, "A").End(xlUp).Row     Application.ScreenUpdating = False     I.AutoFilterMode = False '     For Sheet = 1 To 2         Set D = Sheets(Sheet) '         For RInp = 2 To D.Cells(Rows.Count, "A").End(xlUp).Row             IName = D.Cells(RInp, "C") '             If D.Cells(RInp, "B") <> "承認済" Then             ElseIf D.Cells(RInp, "D") = WorksheetFunction.SumIfs( _                 I.[D:D], I.[B:B], IName, I.[E:E], "完了") Then                 OEnd = Cells(Rows.Count, "A").End(xlUp).Row                 I.Range("A1:E" & IEnd).AutoFilter 2, IName                 I.Range("A1:E" & IEnd).AutoFilter 5, "完了"                 I.Rows("2:" & IEnd).Copy Cells(OEnd + 1, "A")                 I.AutoFilterMode = False                 D.[A1:E1].Offset(RInp - 1).Delete xlUp             ElseIf MsgBox("承認済と注文明細の合計金額が一致しません", _                 vbExclamation + vbAbortRetryIgnore) <> vbIgnore Then                 D.Select                 Cells(RInp, "C").Select                 End             End If     Next RInp, Sheet End Sub