Cum să protejați sau să blocați valorile celulei pe baza culorii de fundal?
Presupunând că am o foaie de lucru mare și mai multe celule sunt umplute cu culori de fundal diferite, acum vreau să blochez sau să protejez celulele pe baza anumitor culori umplute, cum ar fi blocarea sau protejarea tuturor celulelor cu culoare roșie. Există metode bune pentru a face față acestei sarcini în Excel?
Protejați sau blocați valorile celulei pe baza culorii de fundal cu codul VBA
Protejați sau blocați valorile celulei pe baza culorii de fundal cu codul VBA
De exemplu, vreau să blochez și să protejez toate celulele roșii, pentru a împiedica ceilalți utilizatori să modifice aceste valori ale celulei, următorul cod VBA vă poate rezolva această sarcină, vă rugăm să faceți acest lucru:
1. Țineți apăsat butonul ALT + F11 tastele pentru a deschide Microsoft Visual Basic pentru aplicații fereastră.
2. Clic Insera > Moduleși lipiți următorul cod în Module Fereastră.
Cod VBA: Protejați sau blocați valorile celulei pe baza culorii:
Sub lockcellsbycolor()
'Updateby Extendoffice
Dim colorIndex As Integer
colorIndex = 3
Dim xRg As Range
Application.ScreenUpdating = False
For Each xRg In ActiveSheet.UsedRange.Cells
Dim color As Long
color = xRg.Interior.colorIndex
If (color = colorIndex) Then
xRg.Locked = True
Else
xRg.Locked = False
End If
Next xRg
Application.ScreenUpdating = True
MsgBox "All specified color cells have been locked!", vbInformation, "Kutools for Excel"
End Sub
notițe: În codul de mai sus, numărul 3 în cadrul colorIndex = 3 scriptul indică celulele de culoare roșie pe care vreau să le blochez, le puteți schimba la alt index de culoare pe care doriți să îl blocați.
3. Apoi apăsați F5 tasta pentru a rula acest cod și numai celulele de culoare roșie au fost blocate, alte celule sunt deblocate în intervalul folosit de foaie activă, a se vedea captura de ecran:
4. Dacă doriți să le protejați de modificarea de către alți utilizatori, trebuie doar să aplicați fișierul Protejați foaia pentru a proteja această foaie de lucru.
Sfaturi: Pentru a obține numărul indexului de culoare, puteți aplica următoarea funcție definită de utilizator:
Function GetColor(x As Range) As Integer
GetColor = x.Interior.ColorIndex
End Function
Cele mai bune instrumente de productivitate de birou
Îmbunătățiți-vă abilitățile Excel cu Kutools pentru Excel și experimentați eficiența ca niciodată. Kutools pentru Excel oferă peste 300 de funcții avansate pentru a crește productivitatea și a economisi timp. Faceți clic aici pentru a obține funcția de care aveți cea mai mare nevoie...
Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară
- Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
- Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ferestrele noi.
- Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!