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.