Wątek przeniesiony 2022-08-24 15:33 z Inne języki programowania przez Riddle.

Delete Entire row based on Values/text

0

Cześć, mam taki kod do usuwania całego wiersza jeśli w kolumnie 25 jest blank (puste), w kolumnie 26 jest blank i w kolumnie 28 jest blank oraz jeśli w kolumnie 1 jest error (#N/A) i bardzo dobrze działa. Kod poniżej

Sub Delete_Rows()
Dim Row As Long
Dim i As Long
Row = Cells.Find("*", Cells(1, 1), xlFormulas, xlPart, xlByRows, xlPrevious, False).Row
For i = Row To 1 Step -1
    If Cells(i, 25) = "" Then
        Rows(i).Delete
    End If
    If Cells(i, 26) = "" Then
        Rows(i).Delete
    End If
    If Cells(i, 28) = "" Then
        Rows(i).Delete
    End If
    If IsError(Cells(i, 1).Value) Then
        Rows(i).EntireRow.Delete
    End If
Next
End Sub

Ale jeśli puszczę potem taki sam kod tylko ze zmianą kolumny i wartością to już w ogóle nie działa. Kod poniżej

Sub Delete_Row_If_Cell_Contains_String()
Dim Row As Long
Dim i As Long
Row = Cells.Find("*", Cells(1, 1), xlFormulas, xlPart, xlByRows, xlPrevious, False).Row
For i = Row To 1 Step -1
    If Cells(i, 5) = "CUS01" Then
        Rows(i).Delete
    End If
Next
End Sub

Pokazuje mi kręcące się kółeczko że program zadziałał ale nic nie zrobił

0

Alarm odwołany, w komórce było "CUS01 ", czyli kilka spacji i dlatego tego nie znajdywał. Mogę jakoś zrobić aby szukał w komórce po prostu tego słowa ? Np. będzie "" CC CUS01 "" i jak znajdzie słowo CUS01 to usunie bez względu na inne litery, liczby spacje intepunkcje itd?

1 użytkowników online, w tym zalogowanych: 0, gości: 1