Döngü sırasında satır silinmesi gibi durumlarda alttaki satırlar yukarı kayacağı için döngüye tersten başlanması daha uygun olur.
Sub Gizli_Satirlari_Silme() Dim r As Long Const ilkSatir As Byte = 4 'datanın ilk satırı (başlık hariç) Dim SonSatir As Long 'CurrentRegion ve ilkSatir'da başlık 2 defa dahil olduğu için 2 çıkarıyoruz SonSatir = Range("A" & ilkSatir).CurrentRegion.Rows.Count + ilkSatir - 2 For r = SonSatir To ilkSatir Step -1 If Rows(r).Hidden = True Then 'Range("P" & r).Value = "X" Rows(r).Delete End If Next r End Sub
