У меня есть For Each для циклического просмотра всех листов рабочей книги. Он выполняет две операции: 1. удаляет строки, содержащие «фактические» или пустые строки. 2. Это занимает время в столбце D (13: 00-21: 00) и разбивает его на два столбца. 13:00 и 21:00
На листе 1 он выполняет обе операции. На листе 2 он выполняет первую операцию, но не вторую.
Первоначально у меня была функция Text To Column, запущенная отдельно с той же проблемой. Я думал, что, перенеся его с другой подпроцедурой, он будет работать правильно.
Когда я запускаю программу, она выполняет операцию удаления строки, затем выполняет операцию преобразования текста в столбец на листе 1 на листе 2, она выполняет операцию удаления строки, но не операцию преобразования текста в столбец.
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 листами. Все они получают первую операцию, но вторая операция работает только на первом листе.