21. august 2008 - 10:56Der er
9 kommentarer og 1 løsning
Opslag i referencetabel - fremhævning af celle
Hej X-perter!
Hvis jeg har en stor tabel (4500 rækker) og skal holde den op mod en lille tabel (100 rækker), hvordan gør man det så nemmest - og hurtigst - i VBA?
Hvis værdien i store tabels kolonne A findes i lille tabels kolonne A, skal store tabels kolonne E i samme række have sort baggrund og hvid skrift.
Det må være noget med en for-next løkke og et lopslag, men jeg kan ikke helt gennemskue, hvordan det skal skrues sammen, så det ikke kommer til at tage forever!
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Const lilleTabStart = 12 '-"- Const lilleTabSlut = 15 '-"- Sub test() Dim storeTabRæk For ræk = lilleTabStart To lilleTabSlut storeTabRæk = søgIstoreTab(Cells(ræk, 1)) If storeTabRæk > 0 Then Cells(storeTabRæk, 5).Select
With Selection.Interior .ColorIndex = 1 End With Selection.Font.ColorIndex = 2 End If Next ræk End Sub Private Function søgIstoreTab(vA) With Range("A" & CStr(storTabStart) & ":A" + CStr(storTabSlut)) Set c = .Find(vA, LookIn:=xlValues, LookAt:=xlWhole) If Not c Is Nothing Then række = c.Row Else række = 0 End If End With
Excelent: Elegant forslag, men jeg fik ikke med, at lille_liste ligger i en anden projektmappe - og så kan man ikke lave betinget formatering med fjernreferencer?!?
Supertekst: Din ser meget lovende ud, men hvordan får jeg den til at "se", at de to tabeller findes i hver sin projektmappe?
Rem Koden anbringes i "Lille TABEL" Rem *******************************
Dim storXLS Rem ================= Tilpasses Const storArk = "Ark1" Const storSti = "C:\Documents and Settings\pb\Skrivebord\x_2108\storTabel.xls" Const storTabStart = 1 Const storTabSlut = 10 Rem ==================
Rem ================== Const lilleTabStart = 1 Const lilleTabSlut = 4 Rem ================== Sub udførMarkeringAfStorTabel() Dim storeTabRæk Set storXLS = CreateObject("Excel.application") With storXLS .Workbooks.Open storSti End With
For ræk = lilleTabStart To lilleTabSlut storeTabRæk = søgIstoreTab(Cells(ræk, 1)) If storeTabRæk > 0 Then storXLS.Sheets(storArk).Cells(storeTabRæk, 5).Select
With storXLS.Selection .Interior.ColorIndex = 1 .Font.ColorIndex = 2 End With End If Next ræk
Rem luk "den store" storXLS.Application.DisplayAlerts = False storXLS.Save storXLS.Application.Quit Set storXLS = Nothing
MsgBox ("Markering afsluttet") End Sub Private Function søgIstoreTab(vA) With storXLS.Range("A" & CStr(storTabStart) & ":A" + CStr(storTabSlut)) Set c = .Find(vA, LookIn:=xlValues, LookAt:=xlWhole) If Not c Is Nothing Then række = c.Row Else række = 0 End If End With
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.