Ochrona komórek tylko dla formuł używających VBA w Microsoft Excel

Anonim

W tym artykule użyjemy zdarzenia zmiany arkusza roboczego do ochrony komórek zawierających formuły.

Surowe dane składają się z danych sprzedażowych pracowników, które obejmują bifuryfikację według miesiąca i roku.

Chcemy poznać całkowitą sprzedaż w ujęciu miesięcznym i rocznym.

Wykorzystaliśmy funkcję sumy do obliczenia całkowitej sprzedaży w ujęciu miesięcznym i rocznym. Zdarzenie zmiany arkusza służy do ochrony komórek zawierających formuły. Gdy spróbujemy edytować komórkę zawierającą formułę, otrzymamy komunikat wyskakujący z informacją, że wartości komórki nie można zmienić.

Wyjaśnienie kodu

rng. ma formułę

Metoda HasFormula zwróci True, jeśli komórka zawiera formułę. W przeciwnym razie zwróci False.

ActiveSheet.Protect

Powyższy kod służy do ochrony komórki.

Notatka: Komórka będzie chroniona tylko wtedy, gdy jest zablokowana. Dlatego przed ochroną celi należy ją zamknąć.

ActiveSheet.Unprotect

Powyższy kod służy do odblokowania komórki.

Proszę postępować zgodnie z poniższym kodem!

 'Dodaj poniższy kod w module arkusza Option Explicit Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim rng As Range dla każdego rng w Target.Cells If rng.HasFormula Then ActiveSheet.Protect Else ActiveSheet.Unprotect End If Next rng End Sub 

Jeśli podobał Ci się ten blog, podziel się nim ze znajomymi na Facebooku. Możesz również śledzić nas na Twitterze i Facebooku.

Chcielibyśmy usłyszeć od Ciebie, daj nam znać, jak możemy poprawić naszą pracę i uczynić ją lepszą dla Ciebie. Napisz do nas na stronie e-mail