08. juni 2009 - 16:33Der er
14 kommentarer og 1 løsning
Sammenkædning af 2 excel dokumenter
Hej Eksperter
Jeg har et problem.
Jeg har 2 excel ark.
Det ene har indeholder 10.000 varelinier i 2 kolonner
1 med et varenummer og en med vægt.
Så har jeg et andet excel ark
Dette indeholder 40.000 varelinier med de 2 samme kolonner.
Jeg skal på en eller anden vis matche de 2 dokumenter sådan at jeg får opdateret vægt kolonnen i det dokument med 10.000 varelinier uden at få de 30.000 varerlinier med over som ikke figurerer i dokumentet med de 10.000 varelinier.
For Each c In Range("A2:A" & rk1) If Application.WorksheetFunction.CountIf(sh2.Range("A2:A" & rk2), c) Then c.Offset(0, 1) = sh2.Range("A2:A" & rk2).Find(c, LookIn:=xlValues).Offset(0, 1) End If Next
Set sh1 = Sheets("Ark1") ' ark med 10.000 - ret til aktuel navn Set sh2 = Sheets("Ark2") ' ark med 40.000 - ret til aktuel navn
sh1.Activate rk1 = sh1.Cells(65500, "A").End(xlUp).Row ' finder sidste række med data rk2 = sh2.Cells(65500, "A").End(xlUp).Row ' finder sidste række med data
For Each c In Range("A2:A" & rk1) ' løkke gennemløber de 10000 varenumre If Application.WorksheetFunction.CountIf(sh2.Range("A2:A" & rk2), c) Then ' test om den findes i sh2 c.Offset(0, 1) = sh2.Range("A2:A" & rk2).Find(c, LookIn:=xlValues).Offset(0, 1) ' hvis ja hent vægt End If Next
End Sub
Er du stadig i tvivl, så oplys arknavne samt kolonne navne og evt. i hvilken række varenr starter
For Each c In Range("A2:A" & rk1) If Application.WorksheetFunction.CountIf(sh2.Range("A2:A" & rk2), c) Then c.Offset(0, 1) = sh2.Range("A2:A" & rk2).Find(c, LookIn:=xlValues, LookAt:=xlWhole).Offset(0, 1) End If Next
For Each c In Range("A2:A" & rk1) If Application.WorksheetFunction.CountIf(sh2.Range("A2:A" & rk2), c) Then c.Offset(0, 1) = sh2.Range("A2:A" & rk2).Find(c, LookIn:=xlValues, LookAt:=xlWhole).Offset(0, 1) End If Next
det jeg har gjort er at oprette et excel ark (xlsx)
I denne har jeg 3 ark/faneblade
1 = Ark1 2 = shop 3 = erp
I Ark1 har jeg trykket F11, valgt module og indsat din kode. I shop har jeg indsat 10 varenumre med vægt i erp har jeg indsat 30 varenumre med vægt hvor 10 af dem er identiske med shop arket, men en anden vægt.
Jeg står nu igen tilbage i Ark1 (har gemt) og vælger F8, når jeg så klikker afspil siger den: Run-time error 9
Jeg har ikke de store filer hos mig. Så jeg har ikke testet det på så mange endnu.
Men når jeg gør, så skal jeg gerne melde tilbage hvor hurtigt den klarer det.
De 30/10 jeg testede gik hurtigere end jeg kunne nå at blinke.
I løbet af imorgen formiddag for jeg testet på de store filer.
PS. når du nu er sådan en haj til excel, tager du også betalingsopgaver ind? Grunden til jeg spørger er at jeg i fremtiden muligvis skal have lavet lidt større ting i excel, ud fra samme koncept som dette spørgsmål, og så var det oplagt at hyre dig til opgaven.
Synes godt om
Ny brugerNybegynder
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.