23. juni 2005 - 09:06Der er
6 kommentarer og 1 løsning
Union Excel
Har angivet følgende union:
Dim r1 As Range, r2 As Range, r3 As Range, r4 As Range, r5 As Range, r6 As Range, r7 As Range, r8 As Range, rg As Range
Set r1 = Range("B6:B14") Set r2 = Range("D6:D14") Set r3 = Range("F6:F14") Set r4 = Range("H6:H14") Set r5 = Range("j6:j14") Set r6 = Range("l6:l14") Set r7 = Range("n6:n14") Set r8 = Range("p6:p14")
Set rg = Union(r1, r2, r3, r4, r5, r6, r7, r8)
rg.Range(Cells(1, 1), Cells(2, 4)).Select
End Sub
Mit problem er at når jeg angiver min selection så markere den også celler som ikke er angivet i Union, Hvorfor og hvad gør jeg?
Sub nn() Dim r1 As Range, r2 As Range, r3 As Range, r4 As Range, r5 As Range, r6 As Range, r7 As Range, r8 As Range, rg As Range Dim rInter As Range Set r1 = Range("B6:B14") Set r2 = Range("D6:D14") Set r3 = Range("F6:F14") Set r4 = Range("H6:H14") Set r5 = Range("j6:j14") Set r6 = Range("l6:l14") Set r7 = Range("n6:n14") Set r8 = Range("p6:p14")
Set rg = Union(r1, r2, r3, r4, r5, r6, r7, r8) Set rInter = Intersect(rg, Range("6:7")) rInter.Select End Sub
Forklaringen er at i denne linie rg.Range(Cells(1, 1), Cells(2, 4)).Select angiver rg kun udgangspunktet for selectering, ikke at selecteringen kun skal ske indenfor rg. Det er altid øverste venstre hjørne af rg, der er udgangspunkt. Det er nemmest at se hvis rg kun er lig B6. Det vil markere de samme celler.
Jeg har brugt intersect der kun giver skæringspunkter Din kode kunne også forkortes lidt således
Sub test() Dim rg1 As Range Set rg1 = Intersect(Range("b:b,d:d,f:f,h:h,j:j,l:l,n:n,p:p"), Range("6:14")) Intersect(rg1, Range("b6:h7")).Select 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.