Я запускаю звіт щотижня, і я повинен зробити крок, щоб видалити рядок, який містить певну фразу, в моєму випадку "CFS-GHOST-DJKT", у колонці A. Рядки для читання починаються з 7 і мають змінний кінець.
Я подивився в Інтернеті, і відповідно до того, що я виявив, наступний код повинен працювати, але я отримую помилку, і це не подобається рядок із клітинами (Lrow, "A")
Я вважаю, що до частини, що видаляється, це нормально, як це написано, але проблема полягає в аспекті вибору.
Firstrow = 7
Lastrow = Cells(Rows.Count, "A").End(xlUp).Row
With Cells(Lrow, "A")
If Not IsError(.Value) Then
If .Value = "CFS-GHOST-DJKT" Then .EntireRow.Delete
End If
End With
Відповіді:
1 для відповіді № 1відповідно до нашої розповіді ("Я повинен ... видалити a рядок ") Ви, здається, турбуєте лише одне виникнення фрази" CFS-GHOST-DJKT "
у цьому випадку немає потреби в ітерації через комірки, а просто спробуйте знайти її та, якщо це вдало, видаліть весь її рядок
Dim f As Range
Set f = Range("A7", Cells(Rows.Count, "A").End(xlUp)).Find(what:="CFS-GHOST-DJKT", LookIn:=xlValues, lookat:=xlPart)
If Not f Is Nothing Then f.EntireRow.Delete
3 для відповіді № 2
Потрібно перебирати з останнього рядка в перший рядок, коли ви видаляєте ще, ви закінчите пропускати рядки.
Dim x As Long
For x = Cells(Rows.Count, "A").End(xlUp).Row To 7 Step -1
If Cells(x, "A") = "CFS-GHOST-DJKT" Then Rows(x).Delete
Next