Ваше решение не работает, вероятно, означает, что вы получаете ошибку. Также маловероятно, что у вас есть данные в каждой строке на листе. Вы не можете сместить одну строку, если вы используете каждую строку. Я оставлю это на ваше усмотрение, чтобы выяснить, как найти последний ряд (LR). Это решение удаляет только отфильтрованные строки, ваше решение удалит все.
ws.Range("A1:P" & LR).AutoFilter Field:=8, Criteria1:="IBM_Software"
ws.Range("A1.P" & LR).Offset(1,0).SpecialCells(xlCellTypeVisible).EntireRow.Delete