在所有工作表中运行宏

时间:2019-07-10 04:06:09

标签: excel vba

我在工作表中有数据,我想保留特定的部分,并根据特定的文本搜索删除其余不需要的数据。特定的文本是动态的。

因此,基于使用偏移量的Activecell,我删除了特定文本上方的部分,也希望删除下方的部分。 (举例来说,第56-61行仅是我需要的数据,而不是所有工作表中的相同行)

当前代码在一个工作表上运行,并在第二个工作表上停止

activity

我想对所有工作表运行此代码

1 个答案:

答案 0 :(得分:0)

范围选择出现问题。

还应确保ActiveCell对应于您要搜索的正确单元格,因为每张纸上的activecell可能不同。

Sub Test999()

    Dim ws As Worksheet, f As Range

       For Each ws In Worksheets

            'Debug.Print ws.Name

            Set f = ws.Cells.Find(What:="abc", After:=ActiveCell, LookIn:=xlFormulas, _
                    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
                    MatchCase:=False, SearchFormat:=False)

            If Not f Is Nothing Then
                    ws.Activate
                    ws.Range(f.Offset(-2, 0), ws.Range("A2")).Select
                    ws.Range(f.Offset(-2, 0), ws.Range("A2")).EntireRow.Delete
                    f.Select
                    ws.Range(f, Selection.End(xlDown)).Select
                    Selection.End(xlDown).Select
                    ws.Range(ActiveCell.Offset(3, 0), ws.Range("A500")).EntireRow.Delete

            End If
    Next ws

End Sub
相关问题