< návrat zpět
MS Excel
Téma: smazat řádek s určitým
Zaslal/a elvain 6.9.2011 15:04
dobrý den, potřeboval bych pomocí VB nastavit odstranění řádku, obsahujícího určitý textový řetězec.
Použil jsem následující zápis:
For i = 2 To ActiveSheet.UsedRange.Rows.Count
Cells(i, 2).Select
If ActiveCell = "S.R.O." Then
Rows(i).Delete Shift:=xlUp
i = i - 1
End If
Next i
tento zápis ale odstraní jen ty buňky, kde je přesně daný řetězec. potřeboval bych odstranit všechny, tj včetně těch, kde je i jiný text + vyhledávaný řetězec.
předem díky za pomoc,
Jeza.m(6.9.2011 15:12)#005934 Stačí trochu upravit podmínku...
If InStr(1, ActiveCell.Value, "S.R.O", vbTextCompare) <> 0 then
M@
citovat
Roman(6.9.2011 16:01)#005936 Nebo např toto:
For i = 2 To ActiveSheet.UsedRange.Rows.Count
Cells(i, 2).Select
If ActiveCell Like "*S.R.O.*" Then
Rows(i).Delete Shift:=xlUp
i = i - 1
End If
Next icitovat
elvain(6.9.2011 16:19)#005937
stejzi(8.3.2018 5:24)#039773 Zdravím, jak to napsat aby nerozlišoval velká a malá písmena. Dík
citovat
Pr.:
Sub VymazBunkyObsahujuce(Co As String, Stlpec As Long)
Dim Riadkov, Data(), i As Long, RNG As Range
With ActiveSheet
Riadkov = .Cells(Rows.Count, Stlpec).End(xlUp).Row
ReDim Data(1 To Riadkov, 1 To 1)
If Riadkov = 1 Then Data(1, 1) = .Cells(1, Stlpec).Value2 Else Data = .Cells(1, Stlpec).Resize(Riadkov).Value2
For i = 1 To Riadkov
If InStr(1, Data(i, 1), Co, vbTextCompare) > 0 Then
If RNG Is Nothing Then Set RNG = .Cells(i, Stlpec) Else Set RNG = Union(RNG, .Cells(i, Stlpec))
End If
Next i
If Not RNG Is Nothing Then RNG.Delete Shift:=xlUp: Set RNG = Nothing
End With
End Sub
Sub Pokus()
Call VymazBunkyObsahujuce("bla", 1)
Call VymazBunkyObsahujuce("s.r.o", 2)
End Subcitovat