【问题标题】:Loop through Excel sheets in a single workbook在单个工作簿中循环遍历 Excel 工作表
【发布时间】:2015-07-26 13:08:29
【问题描述】:

我有以下代码,我希望它删除所有包含某些特定文本的行,例如,"Statement No****",后跟任何文本。我想为工作簿中的每个工作表执行此操作。

我的问题是下面的代码仅适用于活动标签,而不适用于其他标签。

请协助我,以便它自动循环遍历所有工作表。

Sub doit()

    Application.DisplayAlerts = False

    Dim i As Integer
    Dim r As Long, lr As Long
    Dim x As Integer

    x = Sheets.Count

    For i = x To 1 Step -1

        lr = Cells(Rows.Count, 1).End(xlUp).row
        For r = lr To 1 Step -1
            If InStr(Cells(r, 1), "Statement No") = 0 Then Rows(r).Delete
        Next r

    Next i

    Application.DisplayAlerts = True

End Sub 

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    您可以迭代Sheets 集合,如下所示。确保您使用工作表变量(sh,下面)限定每次调用 RangeCells 等,否则 Excel 将只使用 活动 工作表。

     Dim sh As Worksheet
     For Each sh In Sheets
    
        lr = sh.Cells(sh.Rows.Count, 1).End(xlUp).row
        For r = lr To 1 Step -1
            If InStr(sh.Cells(r, 1), "Statement No") = 0 Then sh.Rows(r).Delete
        Next r
    
     Next
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-05
      • 1970-01-01
      • 2014-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多