Microsoft Excel lader dig anvende betinget formatering på celler. Hvis værdien i en celle opfylder bestemte regler, som du har angivet, vil den betingede formateringsfunktion ændre farven på teksten i cellen eller fyldfarven eller begge dele. Dette er en grundlæggende funktion, der fungerer lige ud af boksen, men hvis du vil låse celler baseret på farve, skal du bruge et lille VBA-script for at gøre det.
Du kan bruge betinget formatering til at ændre farven på en celle, eller du kan manuelt ændre farven til hvad du vil. VBS-scriptet afhænger ikke af betinget formatering for at låse celler. Den skal bare have en celle for at blive farvet.
Lås celler baseret på farve
Før du kan oprette et VBA-script, skal du kende farven på den celle, du refererer til. VBA ser ikke farver, som de er; det refererer til dem via deres farvekoder.
Det første du skal gøre er at give din celle en farve. Vi har valgt den grundlæggende gule, som er nem nok at referere til. Hvis du går med en anden farve, bruge denne hjemmeside for at finde hvilken farvekode du skal bruge. Farvekoden vi bruger til gul er #FFFF00.
Aktiver fanen Udvikler i Excel, og skift derefter til den. Klik på knappen Visual Basic, og indsæt følgende i ‘Dette regneark’. Dette script er skrevet af Superuser-brugeren Dave.
Sub WalkThePlank() dim colorIndex as Integer colorIndex = FFFF00 Dim rng As Range For Each rng In ActiveSheet.UsedRange.Cells Dim color As Long color = rng.Interior.ColorIndex If (color = colorIndex) Then rng.Locked = True else rng.Locked = false End If Next rng End Sub
Kør scriptet, og det vil låse alle de celler, der har den farve, du har angivet. Den farvekode, du fandt for din farve, vil blive indstillet i denne linje i scriptet;
colorIndex = FFFF00
FFFF00 repræsenterer den gule farve, og det er det, du skal erstatte med den farvekode, der gælder for den farve, du bruger. Vi bør nævne, at det er bedst at gå med en basisfarve. Når du tilføjer dette, skal du gemme din Excel-fil som en makroaktiveret fil, ellers vil VBA-scriptet ikke gemme.
De låste celler kan nemt låses op. Låsen er ikke en adgangskodebeskyttet lås, den forhindrer andre mennesker i at ændre værdien af en celle, hvis de vil. Det er en almindelig lås, der forhindrer utilsigtede ændringer i filen.