16. januar 2005 - 14:02
Der er
17 kommentarer og 1 løsning
Slette række i Excel
Jeg mangler blot en linie kode... Hvordan sletter jeg en hel række??? Please help! Private Sub cmdSletDublets_Click() 'On Error Resume Next Data = wkbObj.Sheets(1).Range("a1").CurrentRegion a = wkbObj.Sheets(1).Range("a1").CurrentRegion.Columns.Count Dim prv As String prv = "" For I = 1 To UBound(Data) If Data(I, 2) = prv Then 'HER SKAL HELE RÆKKEN SLETTES!!! HVORDAN??? End If prv = Data(I, 2) Next I wkbObj.Save På forhånd tak! /telep
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
16. januar 2005 - 14:59
#1
Selection.EntireRow.Delete
16. januar 2005 - 15:05
#2
Eller rettere: Dim prv As String prv = "" For I = 1 To 20 If Cells(I, 2) = prv Then Selection.EntireRow.Delete End If prv = Cells(I, 2) Next I Virker hos mig. Data = wkbObj.Sheets(1).Range("a1").CurrentRegion a = wkbObj.Sheets(1).Range("a1").CurrentRegion.Columns.Count Kunne jeg ikke lige få til at køre :o) - Mikker
16. januar 2005 - 15:18
#3
Hmm... den sletter alt... Det er jo ikke meningen! Den skal jo kun slette den række den er nået til...
16. januar 2005 - 15:27
#4
For I = 1 To UBound(Data) If Data(I, 2) = prv Then Rows(i).Delete 'HER SKAL HELE RÆKKEN SLETTES!!! HVORDAN??? End If prv = Data(I, 2) Next I
16. januar 2005 - 15:51
#5
Det nok bare mig der er en klovn men jeg kan ikke få det til at spille... Planen er, at jeg skal gennemløbe en kolonne i en excelfil. Hvis B2 er lig med B1 skal hele række 2 slettes... Altså: For I = 1 Ubound(Data) Hvis Nuværende felt er ligmed foregånde Slet rækken End if Sæt foregående til nuværende Next I
16. januar 2005 - 15:52
#6
Der er alle de point der skal til for det!
16. januar 2005 - 16:15
#7
Men på den måde finder du vel ikke ud af om række 1 og 4 er ens... Se på den her... Dim prv As String prv = "" For a = 1 To 19 Stop prv = Sheets(1).Cells(a, 2).Value For i = a + 1 To 20 If Sheets(1).Cells(i, 2).Value = prv Then Stop Cells(i, 2).EntireRow.Delete Stop End If Next i Next a - Mikker
16. januar 2005 - 16:16
#8
Eller uden alle afbrydelserne :o) Dim prv As String prv = "" For a = 1 To 19 prv = Sheets(1).Cells(a, 2).Value For i = a + 1 To 20 If Sheets(1).Cells(i, 2).Value = prv Then Cells(i, 2).EntireRow.Delete End If Next i Next a
16. januar 2005 - 16:30
#9
mikker du er rigtig tæt på at være en meget stor helt!!! Du skal nok få point, men kan du fortælle mig hvordan jeg jeg markere hele arket og sætte skrifttypen til "fed"? Sagen er nemlig den, at nogle af rækkerne er med "fed" skrift, og så opfatter din kode det som om at feltet er forskelligt selvom værdien er den samme...
16. januar 2005 - 16:56
#10
nahh - det var sgu ikke det der gjorde det... Noget andet er helt galt...
16. januar 2005 - 16:57
#11
Store/små bogstaver måske ?
16. januar 2005 - 17:02
#12
nej det er i virkeligheden tal der blot er formateret som tekst! Har du en mail adresse? Så kan jeg sende dig filen jeg tester på!?
16. januar 2005 - 17:27
#13
sedn den til mail@allmall.dk
16. januar 2005 - 17:31
#14
sendt!
16. januar 2005 - 18:11
#15
Hvad siger du til den nu ? Dim prv As String prv = "" lstrow = Range("B60000").End(xlUp).Row 'finder den nederste række For a = 2 To lstrow - 1 prv = Sheets(1).Cells(a, 2).Value For i = a + 1 To lstrow If Sheets(1).Cells(i, 2).Value = prv And Sheets(1).Cells(i, 2).Value <> "" Then Do While Sheets(1).Cells(i, 2).Value = prv Cells(i, 2).EntireRow.Delete Loop End If Next i Next a
16. januar 2005 - 18:21
#16
Det er storslået!!!
16. januar 2005 - 18:22
#17
Mange tak!
16. januar 2005 - 18:39
#18
Blot glad for at kunne hjælpe :o)
Kurser inden for grundlæggende programmering