27. september 2007 - 15:13Der er
4 kommentarer og 1 løsning
VBA - markering af data
Hej eksperter.
Jeg har et regneark med 2 faneblade. På ark1 er der en lang tabel med en masse varenumre og en pris (måske 500 rækker), og på ark2 er der et udsnit - f.eks, 20 varenumre med tilhørende pris. Dette tal kan variere mellem 0 og det antal varelinjer der er på ark1.
Jeg ønsker at markere alle de linjer med varenumre der findes på ark2, og samtidig trække prisen med over på ark1.
Sub Test1() Data1 = Worksheets("Ark1").Range("A1:B" & Worksheets("Ark1").Range("A65536").End(xlUp).Row) Data2 = Selection For i = 1 To UBound(Data2) For x = 1 To UBound(Data1) If Data1(x, 1) = Data2(i, 1) Then Data1(x, 2) = Data2(i, 2) Exit For End If Next Next Worksheets("Ark1").Range("A1:B" & Worksheets("Ark1").Range("A65536").End(xlUp).Row) = Data1 End Sub
Løsningen virker fint - og værdierne overskrives også. Men kan der indbygges således, at linier der får overskrevet en værdi på Ark1 (hvor varenummeret findes på Ark2) bliver markeret f.eks. at linjen farves gul ?
Sub Test1() Data1 = Worksheets("Ark1").Range("A1:B" & Worksheets("Ark1").Range("A65536").End(xlUp).Row) Data2 = Selection For i = 1 To UBound(Data2) For x = 1 To UBound(Data1) If (Data1(x, 1) = Data2(i, 1)) And (Data1(x, 2) <> Data2(i, 2)) Then Data1(x, 2) = Data2(i, 2) Worksheets("Ark1").Range("A" & x & ":B" & x).Interior.ColorIndex = 6 ' gul Exit For End If Next Next Worksheets("Ark1").Range("A1:B" & Worksheets("Ark1").Range("A65536").End(xlUp).Row) = Data1 End Sub
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.