VBA hiba? Üres sorok törlése?
Sub grgr()
Dim sor As Integer, oszlop As Integer, max_sor As Integer
max_sor = 100
For sor = 1 To max_sor
If CStr(Cells(sor, 2).Value) = CStr(0) Then
Rows(sor).EntireRow.Delete
End If
Next sor
End Sub
Valamiért random kihagy sorokat amit nem töröl ki, és kb 4-5 futtatásra töröl csak ki mindent. Vajon miért?
Lehet, hogy a cella adattípusa kavar be. A CStr(0) helyett próbáld így: ""
Vagy a nullákat is törölni szeretnéd?
Szerintem inkább az a gond, hogy törléskor a törölt cella helyére ugrik a következő elem, és a következő elem nem a következő lesz, hanem az azt követő - és ez több, egymást követő üres cellánál okozhat gondot: ezért maradnak meg üres cellák.
Ezt egy ábrán prezentálom:
az első sor a törlés sorszáma (a 0. a törlések előtti állapot), a sárgával jelzett cellák a törlés utáni következő elemek.
' Javaslat:
Sub grgr()
Dim sor As Integer, max_sor As Integer
max_sor = 100
sor = max_sor
while sor > 0
If CStr(Cells(sor, 2).Value) = CStr(0) Then
Rows(sor).EntireRow.Delete
End If
sor = sor-1
wend
End Sub
Ja, a max_sor nem is kell. :))
Dim sor As Integer
sor = 100
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!