For Each循环的一部分在运行时不会执行,但会在单个步骤中执行

时间:2019-06-05 17:39:45

标签: excel vba

我有一个For Each循环浏览工作簿的所有工作表。它执行两个操作:1.删除包含“实际”或空白行的行。 2.它在D列(13:00-21:00)中花费时间,并将其分为两列。 13:00和21:00 在sheet1上,它执行两种操作。在sheet2上,它执行第一个操作,但不执行第二个操作。

最初,我具有相同问题的“文本转栏”功能单独运行。我认为通过将其与其他子过程一起使用,它将可以正常运行。 当我运行程序时,它将执行行删除操作,然后在工作表2的sheet1上执行文本到列的操作,它将执行行删除操作,但不执行文本到列的操作。

Dim WS As Worksheet
Dim LastRow As Long

For Each WS In Worksheets
    For i = WS.Cells(WS.Rows.Count, "A").End(xlUp).Row To 16 Step -1
        If WS.Cells(i, 1) = "Actual:" Or WS.Cells(i, 1) = "" Then
            'Delete Rows containing Actual: or empty rows
             WS.Rows(i).EntireRow.Delete
        End If
    Next i
    LastRow = WS.Range("d" & Rows.Count).End(xlUp).Row
  Range("d16:D" & LastRow).TextToColumns DataType:=xlDelimited, _
      Tab:=True, Other:=True, OtherChar:="-", TrailingMinusNumbers:=True

        Next WS

没有错误消息,它仅完成子过程并继续。它还适用于11个工作表。他们都获得了第一个操作,但是第二个操作仅适用于第一张纸。

0 个答案:

没有答案