Ochrona formatowania w programie Excel 2007


2

W programie Excel 2007 tworzę wiele formularzy dla innych osób. Będą uzyskiwać dostęp do wersji cyfrowych i obawiam się, że w końcu przypadkowo złamią stworzone przeze mnie formatowanie. Najbardziej prawdopodobnym sposobem ich przypadkowego złamania jest użycie funkcji kopiuj / wklej.

Czy istnieje sposób na zablokowanie formatowania przy jednoczesnym umożliwieniu modyfikacji zawartości komórek? Mam na myśli formatowanie:

  • Kolor wypełnienia komórki
  • Granice
  • Połączone komórki
  • Typ / wysokość / formatowanie czcionki
  • Zawartość niektórych komórek (komórki, które oznaczają)
  • Szerokość / wysokość komórki.

Żeby było jasne, nie próbuję chronić przed złośliwymi użytkownikami. Staram się chronić przed dobrymi użytkownikami, którzy nie do końca rozumieją formatowanie Excela i Excela. Chociaż mogę nauczyć je kilku podstawowych wskazówek na temat unikania łamania rzeczy, w końcu konieczne będzie posiadanie przynajmniej pewnego podstawowego blokady formatu.


Hmm, właśnie poszedłem i przetestowałem. Chronię UserInterfaceOnly: = Prawda również w mojej aplikacji i widziałem, że masz rację, nie chroni formatowania odblokowanych komórek. Po prostu pozwala mojemu kodowi VBA modyfikować zablokowane komórki. Usunę moją odpowiedź.
— Lance Roberts

Czy kiedykolwiek znalazłeś rozwiązanie tego problemu?
— Move More Comments Link To Top

Nie. Nigdy nie znalazłem odpowiedniego rozwiązania. :(
— JoshuaD

Odpowiedzi:


1

Połączenie 2 ustawień zapewnia taką funkcjonalność:

  1. Wybierz komórki, w których będzie wprowadzane dane, przejdź do Formatowanie komórek, Ochrona i odznacz ZABLOKOWANY.

  2. Na Wstążce, w obszarze Przegląd, CHROŃ swój arkusz. Zauważ, że niektóre wyjątki są dostępne: Wybierz, Formatuj komórki, Wstaw, Usuń itd. Po prostu pozostaw wszystkie niezaznaczone, z wyjątkiem Wybierz. Jeśli użytkownicy muszą wstawiać wiersze, należy również uwzględnić wyjątki od „Wstaw wiersze” (a być może „Usuń wiersze”).


1
To nie działa. Blokuje arkusz, ale nie pozwala użytkownikowi na wpisanie pól, w których powinny mieć możliwość wpisywania. W gruncie rzeczy zmienia to obraz do wyboru. Potrzebuję, aby była to forma, w której tylko miejsca, w których użytkownik ma wprowadzać informacje, są edytowalne i mogą edytować tylko tekst, a nie formatowanie.
— JoshuaD

@JoshuaD, możesz prawdopodobnie odznaczyć większość tych opcji, z wyjątkiem formatowania komórek. Nie mam pod ręką Excel2007, aby powiedzieć, które z nich mają znaczenie.
— Lance Roberts

Joshua, zrobiłeś pierwszy krok, o którym wspomniałem? Jeśli tak, powinieneś zauważyć, że możesz wpisać te konkretne komórki, w których usunięto zaznaczenie „Zablokowane”.
— mtone

Hrm. To wydaje się być bardzo dobry początek. To nie jest dokładnie to, czego szukałem (jeśli skopiujesz / wkleisz formatowanie do jednej z odblokowanych komórek, formatowanie również zostanie skopiowane), ale to bardzo dobry początek. Dziękuję Ci.
— JoshuaD

Zgadzam się, myślę, że będziesz musiał obliczyć makro VBA, aby złapać zdarzenie „zmiany”, aby zapobiec cokolwiek poza tekstem. Przy zablokowanym arkuszu masz mniej powodów do zmartwień w swoim makrze.
— mtone

1
  • Pod Przejrzeć , odblokuj Ochraniać , a następnie przejdź do karty Strona główna.
  • pod Czcionka (prawy dolny róg) otwarte Formatowanie , Wybierz Ochrona kartę i usuń zaznaczenie Zablokowany pudełko.
  • Na arkuszu wybierz komórki, które chcesz chronić, i wróć do formatowania (pod Czcionka ) i Ochrona i sprawdź ponownie Zablokowany pudełko.
  • Następnie idź do swojego Przejrzeć karta i wybierz Chroń arkusz . Pamiętaj, aby wybrać działania, które ktoś będzie mógł zmienić.

Próbowałem tego, ale nie działa. Chroni komórkę przed formatowaniem, ale nie pozwala mi na zmianę zawartości komórki. Chcę, aby obramowanie / kolory / rozmiar pozostały takie same bez względu na wszystko, pozwalając jednocześnie użytkownikowi na wpisywanie / wklejanie / wycinanie zawartości
— JoshuaD

1

Możesz utworzyć duplikat (opcjonalnie niesformatowany) arkusz, do którego odwołuje się sformatowany arkusz. Formatowanie duplikatu arkusza wprowadzania danych nie ma znaczenia, dostarcza tylko wartości. Możesz także w pełni zabezpieczyć sformatowaną (do drukowania itd.) Wersję.


0

Kliknij kartę Deweloper, przycisk Visual Basic, aby otworzyć ekran kodu VB. Wklej następujące elementy:

Dim cellcolor As Variant

Private Sub Worksheet_Change(ByVal Target As Range)
  Target.Interior.Color = cellcolor
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   cellcolor = Target.Interior.Color
End Sub

Definiuje zmienną globalną, która przechwytuje kolor komórki, którą wybrałeś do wklejenia (w zdarzeniu SelectionChange). Następnie, po wklejeniu, przechodzi do zdarzenia Zmień i ustawia komórkę na kolor, który wcześniej złapałeś.

Uwaga: Kod VB działa, ale nie zezwala na cofnięcie. (Kopiujesz / Wklej i naprawia kolor komórki z powrotem do tego, co miałeś, ale jeśli zdecydujesz, że nie chcesz wklejać, dobrze, szkoda.

Świetnie na to działa, ale: Nie łapie celowych zmian formatu. (wybierz komórkę; kliknij Kolor wypełnienia).


0

Użyj formatowania warunkowego. Dopóki określisz żądany zakres i opcje formatowania, zachowa ono całe formatowanie.


Czy możesz wyjaśnić, w jaki sposób OP stosuje formatowanie warunkowe, na przykład z przykładem? Spójrz na Jak odpowiedzieć
— Burgi
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.