/ / Як видалити рядок, який містить певний код у першому стовпчику за допомогою excel VBA? - excel, vba, excel-vba, delete-row

Як видалити рядок, який містить певний код у першому стовпці за допомогою excel VBA? - excel, vba, excel-vba, delete-row

Я запускаю звіт щотижня, і я повинен зробити крок, щоб видалити рядок, який містить певну фразу, в моєму випадку "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