|
こんにちは。tokiと申します。
ワークシートのデータ一括削除ボタンを作成中なのですがご質問です。
(前提)
1.ワークシート構成は1月〜12月及び上期、下期の合計14枚です。
2.各シートには各行に社員データが入力されておりA列に職務名が記載されています。
3.ユーザーフォームにて削除Label1に選択した「職務」が表示されています。
ここで3.にて表示されている職務に該当する全ての人間のデータを14枚のワークシートから一括削除したいと思っています。
以下のコードを作成しました。
しかしながら、途中でエラーが出てしまいます。結果として上期シートだけ職務該当者の行が削除されるのですが、それ以降の処理が行われていません。
どこがおかしいのかご指摘お願いします。
Private Sub 職務削除ボタン_Click()
Dim sakujyol As String
Dim ans As Integer
Dim myRowSJ As Variant
Dim myRowSJ2 As Variant
Dim myRowSJ3 As Variant
sakujyol = 削除Label1
Application.DisplayAlerts = False
ans = MsgBox(sakujyol & "を本当に削除しますか?" & "(この職務に属する登録済の社員データも全て削除されます。)", vbYesNo + vbExclamation, "職務の削除")
Select Case ans
Case vbYes
MsgBox sakujyol & "を削除します。", vbInformation, "職務の削除"
With Worksheets("上期")
Do While IsError(myRowSJ) = False
myRowSJ = Application.Match(sakujyol, .Range("A:A"), 0)
.Cells(myRowSJ, "A").EntireRow.Delete shift:=xlUp
Loop
End With
With Worksheets("下期")
Do While IsError(myRowSJ2) = False
myRowSJ2 = Application.Match(sakujyol, .Range("A:A"), 0)
.Cells(myRowSJ2, "A").EntireRow.Delete shift:=xlUp
Loop
End With
For i = 1 To 12
With Worksheets(i & "月")
Do While IsError(myRowSJ3) = False
myRowSJ3 = Application.Match(sakujyol, .Range("A:A"), 0)
.Cells(myRowSJ3, "A").EntireRow.Delete shift:=xlUp
Loop
End With
Next
Case vbNo
Exit Sub
End Select
Application.DisplayAlerts = True
Unload Me
Unload 削除選択フォーム
End Sub
|
|