Почему вставка в незащищенную ячейку в Excel защищает ее?


12

При поиске ответа на этот вопрос я наткнулся на довольно странное поведение в Excel, связанное с незащищенными ячейками в защищенных рабочих листах.

Чтобы понять, что я имею в виду, создайте новую книгу, снимите защиту с первой ячейки (A1) и защитите лист . Единственная ячейка, в которую можно ввести текст, должна быть A1. Затем перейдите в другое приложение (например, в браузер) и скопируйте оттуда текст. Выделите первую ячейку, щелкнув по ней один раз (не щелкайте дважды и не вставляйте на панель формул), и вставьте в нее текст.

Это не только изменит форматирование ячейки, но и установит ее защищенный флаг. После этого невозможно изменить содержимое этой ячейки, не удалив защиту листа (или, конечно, не отменив операцию вставки).

Это почему? Это желаемое поведение или ошибка в Excel 2010 (версия, которую я использовал, чтобы попробовать это)?

Ответы:


13

Это действительно ожидаемое поведение (хорошо ожидаемое Microsoft, не обязательно пользователями), что является хорошей новостью. И есть довольно простая работа, которая является еще лучшими новостями.

Когда вы вставляете фрагмент отформатированного текста, ячейка получает стиль «Нормальный», а затем имеет необходимое форматирование сверху. Стиль «Нормальный» по умолчанию имеет защиту, заблокированную. Вот почему это применяется.

Решение состоит в том, чтобы изменить стиль «Нормальный». Чтобы воспроизвести решенную версию этой проблемы, создайте новую книгу, а затем:

1) На домашней ленте в разделе «Стили» щелкните правой кнопкой мыши поле «Обычные» и выберите «Изменить». Нажмите кнопку «Форматировать» и на вкладке «Защита» снимите флажок «Заблокировано». (Помните, что это относится только к этой электронной таблице, но теперь все ячейки теперь будут защищены, а не защищены).

2) Выберите Все ячейки, щелкните правой кнопкой мыши и выберите формат ячеек, и под защитой проверьте Заблокировано.

3) Выберите только A1, щелкните правой кнопкой мыши, выберите формат ячеек, а под защитой снимите флажок заблокирован.

4) Защитить рабочий лист

Теперь мы должны вернуться к тому же пункту, что и пример в вопросе, с точки зрения заблокированных и разблокированных ячеек, но с другим стилем Normal.

Теперь, когда я вставляю текст из слова или из другого места, ячейка не становится защищенной.


После нескольких лет работы с Excel я был шокирован, узнав об этой «функции». Я даже не поверил, когда мои пользователи рассказали об этом, пока я не проверил себя :) Рад, что вы столкнулись за эти годы до меня: D
ZygD

1

Предыдущий ответ больше не относится к самой последней версии Excel 365. Текущая версия Excel 365 теперь создает новый стиль с именем «Normal 2» или любой другой порядковый номер, который ему нужен. Он применяет новый стиль, который заблокирован вместо измененного нормального стиля.

Вот решение для Excel 365. Выберите диапазон ячеек, который вы хотите, чтобы другие могли редактировать. Затем перейдите на вкладку «Обзор». В разделе «Изменения» нажмите «Разрешить пользователям редактировать диапазоны». Нажмите кнопку «Новый». Выбранный диапазон будет автоматически заполнен автоматически сгенерированным заголовком. Сделайте любые ручные изменения, которые вы хотите. Если вы хотите, чтобы люди могли вносить изменения только с помощью пароля, вы можете ввести его здесь. Я предпочитаю, чтобы люди не использовали пароль, поэтому я нажимаю кнопку «Разрешения», а затем «Добавить». Я хочу, чтобы кто-нибудь мог редактировать без пароля, поэтому я ввожу «Все», поскольку пользователю разрешено вносить изменения. Если вы понимаете права доступа, вы можете выбрать одного пользователя или группу пользователей, которые смогут вносить изменения без пароля. Затем просто нажмите «ОК» пока все окна не закрыты. Защитите свой лист, и вы хороши.


0

Я не знаю, почему это происходит, но, насколько я понимаю, это очень большая ошибка. :-(

Похоже, что всякий раз, когда Excel пытается вставить текстовое форматирование вместе с текстом, он блокирует ячейку. Если вы выбрали в Match Destination Formattingкачестве опции вставки; вставить из простого текстового редактора, такого как Блокнот; или вставьте из другой книги в тот же экземпляр Excel, после чего ячейка все еще будет разблокирована. Если вы выполняете обычную вставку из любого другого приложения с форматированием текста, даже из другого экземпляра Excel, тогда Excel блокирует вашу разблокированную ячейку.

Проблема форматирования как минимум имеет обходной путь, при котором вы можете скопировать правильное форматирование из другой ячейки и вставить его обратно в испорченную ячейку.


Оказывается, это не ошибка. Добавили то, что я считаю решением, и подумали, что вас это может заинтересовать.
Алекс Андронов

Вставка в виде простого текста (или форматирование соответствия цели), вероятно, является наилучшим путем, если вы уже настроили свою электронную таблицу и не можете столкнуться с необходимостью заново ее настроить, отредактировав стиль Normal. Однако он полагается на то, что пользователи электронной таблицы знают, как выбирать различные параметры вставки. По моему опыту, это очень мало людей!
user535673

0

Вы выбираете незащищенную ячейку на защищенном листе (AtiveCell), в который вы вставляете данные из веб-браузера. После пасты он становится защищенным. Это не желательно :-)

Я сделал это, и это работает!

В лист-коде, в моем случае «Лист1»:

Sub Worksheet_Change(ByVal Target as Range)

  ...some irellevant code...

  ActiveSheet.Unprotect   
  ActiveCell.Locked=False

  ...code that protects Sheet1

Exit Sub

0

Как и все остальные на этой странице (и в теме), это было неловко. Тем не менее, лучший способ (для меня) обойти это при вставке «вставить значения» при вставке данных и «вставить специальные» - «гиперссылка» при вставке ссылок. Я сделал это таким образом, поскольку я обычно включал условное форматирование, и я должен вставлять значения как нечто само собой разумеющееся (или изменения условного форматирования). Надеюсь, вы найдете это полезным.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.