Microsoft Excel umożliwia zastosowanie warunkoweformatowanie do komórek. Jeśli wartość w komórce spełnia określone przez Ciebie reguły, funkcja formatowania warunkowego zmieni kolor tekstu w komórce, kolor wypełnienia lub oba te elementy. Jest to podstawowa funkcja, która działa od razu po wyjęciu z pudełka, jednak jeśli chcesz zablokować komórki na podstawie koloru, potrzebujesz do tego małego skryptu VBA.
Możesz użyć formatowania warunkowego, aby zmienićkolor komórki lub możesz ręcznie zmienić kolor na dowolny. Skrypt VBS nie zależy od formatowania warunkowego w celu zablokowania komórek. Wystarczy pokolorować komórkę.
Zablokuj komórki na podstawie koloru
Zanim utworzysz skrypt VBA, musisz znać kolor komórki, do której się odwołujesz. VBA nie widzi kolorów takimi, jakimi są; odwołuje się do nich za pomocą kodów kolorów.
Pierwszą rzeczą, którą musisz zrobić, to dać komórkękolor. Poszliśmy z podstawowym żółtym, który jest wystarczająco łatwy do odniesienia. Jeśli wybierasz inny kolor, skorzystaj z tej witryny, aby znaleźć kod koloru, którego chcesz użyć. Kod koloru, którego używamy dla koloru żółtego, to # FFFF00.
W programie Excel włącz kartę Deweloper, a następnie przejdź do niej. Kliknij przycisk Visual Basic i wklej następujące elementy w „Arkuszu”. Ten skrypt został napisany przez użytkownika Superuser Dave'a.
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

Uruchom skrypt, a zablokuje on wszystkie komórki o ustawionym kolorze. Kod koloru znaleziony dla twojego koloru zostanie ustawiony w tym wierszu skryptu;
colorIndex = FFFF00
FFFF00 reprezentuje żółty kolor i to wszystkoco musisz zastąpić dowolnym kodem koloru, którego używasz do koloru, którego używasz. Powinniśmy wspomnieć, że najlepiej jest wybrać podstawowy kolor. Po dodaniu tego musisz zapisać plik Excel jako plik z obsługą makr, w przeciwnym razie skrypt VBA nie zapisze.
Zablokowane komórki można łatwo odblokować. Blokada nie jest zabezpieczona hasłem, co uniemożliwia innym osobom zmianę wartości komórki, jeśli chcą. Jest to zwykła blokada, która zapobiega przypadkowym zmianom w pliku.
Komentarze