Avatar billede lklingenberg Nybegynder
06. august 2003 - 14:58 Der er 9 kommentarer og
1 løsning

Fjerne flere forekomster af samme celle baseret på indhold

Hi,

Disse linjer sorterer og fjerner eventuelle doubletter, tripletter, etc.

Columns("B:B").Sort Key1:=Range("B1")
Range("B1").Select
Do Until Len(ActiveCell.Value) = 0
  strSender = ActiveCell.Value
  ActiveCell.Offset(1, 0).Select
  strSenderCompare = ActiveCell.Value
  If strSender = strSenderCompare Then
      ActiveCell.Delete Shift:=xlUp
      Else
      ActiveCell.Offset(1, 0).Select
  End If
Loop

funktionen virker, men der må være en lettere (og hurtigere) måde at gøre det på...?
06. august 2003 - 15:06 #1
Avanceret filter klarer det uden kodning.
Avatar billede lklingenberg Nybegynder
06. august 2003 - 15:36 #2
jo, men jeg vil gerne helt have fjernet de "overskydende" celler.
06. august 2003 - 15:55 #3
Brug avanceret filter til at indsætte et nyt sted uden dubletter
Kopier den nye talrække, og sæt ind hvor de oprindelige tal stod.
Avatar billede bak Forsker
06. august 2003 - 16:27 #4
Med udgangspunkt i din egen makro. Den "fjerner" ikke de overskydende celler men sorterer igen tilsidst således at de kommer nedest og er blanke.

Sub test()
Dim ThisCell As Range
Columns("B:B").Sort Key1:=Range("B1")
Set ThisCell = Range("B1")
Do Until Len(ThisCell.Value) = 0
  i = 1
  While ThisCell.Value = ThisCell.Offset(i, 0).Value
        ThisCell.Offset(i, 0).Value = ""
        i = i + 1
  Wend
  Set ThisCell = ThisCell.Offset(i, 0)
Loop
Columns("B:B").Sort Key1:=Range("B1")
End Sub
Avatar billede bak Forsker
06. august 2003 - 16:34 #5
Hastigheden her burde være betydelig bedre, men den kan ikke slå Avanceret filter.
grunden til at din er langsommere, er dine Select's og 
ActiveCell.Delete Shift:=xlUp
Avatar billede lklingenberg Nybegynder
06. august 2003 - 18:11 #6
Lige et spørgsmål. Hvis man har lavet et avanceret filter, hvor nogle rækker er filtreret fra, vil de disse række så medtages fx i beregningsprocedurerer der går fra celle til celle i en kolonne? Eller vil de blive springet helt over?
06. august 2003 - 18:49 #7
Hvis du bruger avanceret filter på den måde, at du lader data blive i det oprindelige område, vil de skjulte celler stadig indgå i beregninger af typen =SUM(B1:B199)

Men hvis du bruger avanceret filter, og indsætter data et andet sted, vil dubletter være fjernet helt fra listen.
Avatar billede lklingenberg Nybegynder
06. august 2003 - 19:09 #8
Ok. Så bliver det er filter ;-)
Tak for svarende begge to.
Avatar billede lklingenberg Nybegynder
06. august 2003 - 20:35 #9
Lige en sidste ting (beklager). Er der meget stor forskelig i hastighed hvis man filtrerer på en hel kolonne ift. at finde det område at kolonnen, hvor der er "cellefyld" og derefter filtrere på det område?
07. august 2003 - 12:29 #10
Nej, der vil stort set ingen forskel være.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester