Avatar billede Globus7913 Nybegynder
04. januar 2011 - 09:59 Der er 1 kommentar og
1 løsning

Makro til sammenligning af lister

Hej
Jeg skal bruge en makro som sammenligner kolonner i 2 ark og resultatet i ark-3 skal være alle de identiske ord fra begge lister.
Jeg fandt i en gammel tråd denne her:

Sub FindEns()
Dim F As Integer, C As Integer, T As Integer, U As Integer
Worksheets("Ark3").Activate
U = 1 ' Finder ud af hvor mange rækker der er med data på ark3
Do Until Worksheets("Ark3").Cells(U, 2) = ""
U = U + 1
Loop
Worksheets("Ark1").Activate
F = 1 ' Finder ud af hvor mange rækker der er med data på ark2
Do Until Worksheets("Ark2").Cells(F, 2) = ""
F = F + 1
Loop
For T = 1 To F
Worksheets("Ark1").Activate
C = 1
Do Until Worksheets("Ark1").Cells(C, 2) = ""
If Worksheets("Ark2").Cells(T, 2) = Worksheets("Ark1").Cells(C, 2) Then
Worksheets("Ark1").Rows(C & ":" & C).Select
    Selection.Copy
    Sheets("Ark3").Select
    Rows(U & ":" & U).Select
    ActiveSheet.Paste
 
    Sheets("Ark2").Select
    Worksheets("Ark2").Rows(T & ":" & T).Select
    Selection.Copy
    Sheets("Ark3").Select
    Rows(U + 1 & ":" & U + 1).Select
    ActiveSheet.Paste
    U = U + 2
    Worksheets("Ark1").Activate
End If
  C = C + 1
  Loop
Next T

End Sub

Den virker tilsyneladende fint til mit behov, bortset fra at den kopierer de ens linier under hinanden på ark3 - jeg ønsker at resultatet er uden duplikerede linjer: Rene match skal fremkomme én gang på ark-3.

Og lige et sidespørgsmål: Er denne kode stærk( og hurtig) nok til at varetage sammenligninger på lister af f.eks 5.000 linjer fra ark-1 og 200.000 linjer fra ark-2?
Avatar billede gnowak Nybegynder
04. januar 2011 - 13:03 #1
1) Du kan bruge en liste (array) til at gemme dine resultater, hvorefter du hver gang undersøger om et resultat er unikt før du tilføjer det til listen.

2) Man kan altid optimere koden og slå skærmopdateringer fra etc. Men tag tid på en mindre liste og sammenlign om du vil vente på de store lister. Det afhænger også af, hvor mange gange du skal sammenligne listerne.

VH. GRN.dk
Avatar billede Globus7913 Nybegynder
04. januar 2011 - 15:32 #2
Det lyder da som en løsning. Desværre har jeg ikke forstand på det.
Jeg forestillede mig at man ved en lille ændring af ovenstående kode kan sikre at kun den matchende data fra det ene ark sendes videre til ark 3. Men blot resultatet bliver det samme, er fremgangsmåden for mig underordnet.
Kan du lave et kode-eksempel til dit forslag?
VH Globus
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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