Excel 如何设置宏以从不断变化的图纸数量中删除一行/多行

Excel 如何设置宏以从不断变化的图纸数量中删除一行/多行,excel,vba,Excel,Vba,我有一本工作手册,它有越来越多的工作表(每月1张,每月跟踪缺勤分数)。当一名员工离开时,我需要能够从整个工作簿中删除他们。我现在有它设置删除过去6个月,因为这是所有的分数计算,但我需要它来删除的工作人员完全。这就是我目前正在使用的(sheets.count的数量增加到删除6个月) Sheets(Sheets.Count - 2).Select Last = Cells(Rows.Count, "J").End(xlUp).Row For i = Last To 1 Step -1 If

我有一本工作手册,它有越来越多的工作表(每月1张,每月跟踪缺勤分数)。当一名员工离开时,我需要能够从整个工作簿中删除他们。我现在有它设置删除过去6个月,因为这是所有的分数计算,但我需要它来删除的工作人员完全。这就是我目前正在使用的(sheets.count的数量增加到删除6个月)

Sheets(Sheets.Count - 2).Select
Last = Cells(Rows.Count, "J").End(xlUp).Row
For i = Last To 1 Step -1
    If (Cells(i, "J").Value) = "y" Then
        Cells(i, "A").EntireRow.Delete
    End If
Next i
由于越来越多的工作表,我不知道如何设置为删除整个事情?任何帮助都将不胜感激

此外,它不需要从第2页中删除,也不需要删除最后两页(这些页包含其他信息)

我在这方面没有经验,我所有的vba工作都是很差的自学,知识很少,或者使用这里找到的答案,并根据我的需要进行修改

试试这个:

Sub RemoveStaffMember()
    Dim sht As Worksheet, Last As Long, i As Long

    For Each sht In ThisWorkbook.Sheets        
        If sht.Index <> 2 And sht.Index < (ThisWorkbook.Sheets.Count - 1) Then
            With sht
                Last = .Cells(.Rows.Count, "J").End(xlUp).Row

                For i = Last To 1 Step -1
                    If .Cells(i, "J") = "y" Then
                        .Cells(i, "A").EntireRow.Delete
                    End If
                Next i

            End With
        End If            
    Next sht
End Sub
Sub-removestafmember()
与工作表一样暗,持续时间一样长,持续时间一样长
对于此工作簿中的每个sht。工作表
如果sht.Index 2和sht.Index<(thishworkbook.Sheets.Count-1),则
用短发
Last=.Cells(.Rows.Count,“J”).End(xlUp).Row
对于i=最后一步-1
如果.Cells(i,“J”)=“y”,则
.Cells(i,“A”).EntireRow.Delete
如果结束
接下来我
以
如果结束
下一步
端接头

为了清楚起见,它确实需要能够从
Sheet1
中删除,但不能从
Sheet2
或最后两页中删除?正确。它需要在第1页上删除,跳过第2页,从有多少页中删除,然后不从最后2页中删除。谢谢。我想这就是我的代码(下面)实现的,从你的评论来看,它似乎对你有效。至少它有效了?我现在得到一个运行时错误“13”:类型不匹配。把这一行作为问题:If.cells(i,“J”)=“y”Then