Этот вопрос является уточненным подмножеством « Предотвращение нарушения формул / форматирования путем перемещения ячеек в заблокированном рабочем листе» , который еще не решен.
Представьте себе простую игру Excel:
| A | B |
----------
1 | 19 | |
2 | 5 | |
3 | 23 | |
4 | 8 | |
Пользователь должен перейти к ячейкам Bи ввести номер слева (я знаю, глупо, но это пример!). Чтобы сделать это видимым, если он / она сделал это правильно, есть условное форматирование:
- Когда
=$A1<>$B1это правда, текст становится красным; применяется к=$B$1:$B$4.
Это работает, но ...
- Игрок вводит
8вB1. Это становится красным. Он / она понимает ошибку и перемещает8в нужную ячейку с помощью перетаскивания . 8Остается красным , а условное форматирование разделяются на- Когда
=$A3<>$B3это правда, текст становится красным; применяется к=$B$3:$B$4. - Когда
=$A1<>$B2это правда, текст становится красным; применяется к=$B$2.
- Когда
Как можно предотвратить нарушение форматирования при использовании перетаскивания?
2
Это не решается, потому что это не может быть сделано вне vba, который восстанавливает условное форматирование каждый раз, когда изменяется значение ячейки. Я бы рекомендовал обучить пользователя не использовать перетаскивание или копирование и вставку. Это будет иметь тот же эффект. Пользователь может копировать и вставлять только специальные значения, и это будет работать. Но это вопрос обучения или VBA.
—
Скотт Кранер
Это был бы идеальный ответ. :)
—
Боуи