Kezdőoldal » Számítástechnika » Programozás » VBA hiba? Üres sorok törlése?

VBA hiba? Üres sorok törlése?

Figyelt kérdés

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?


2018. aug. 1. 10:44
 1/6 anonim ***** válasza:

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?

2018. aug. 1. 13:27
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:

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:

[link]

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.

2018. aug. 1. 16:11
Hasznos számodra ez a válasz?
 3/6 anonim ***** válasza:
#2, azt hiszem én értem. Tehát az a gond, hogy amikor töröl egy sort, akkor onnantól a "sor" és a "max_sor" változó értékéből is le kellene vonni egyet. (Persze akkor nem for ciklus kell.) Így csak akkor ugrana az eggyel nagyobb sorra, ha az aktuális sor cellája nem üres.
2018. aug. 1. 21:41
Hasznos számodra ez a válasz?
 4/6 anonim ***** válasza:
..Vagy másik megoldás lehet a lista végéről felfelé haladni.
2018. aug. 1. 21:42
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:

' 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

2018. aug. 1. 21:54
Hasznos számodra ez a válasz?
 6/6 anonim ***** válasza:

Ja, a max_sor nem is kell. :))


Dim sor As Integer

sor = 100

2018. aug. 1. 21:56
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!