12

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

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

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

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

5 ответов5

13

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

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

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

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

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

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

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

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

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

0

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

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

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

0

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .