Этот вопрос является уточненным подмножеством « Предотвращение нарушения формул / форматирования путем перемещения ячеек в заблокированном рабочем листе» , который еще не решен.
Представьте себе простую игру 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.
—
Скотт Кранер
Это был бы идеальный ответ. :)
—
Боуи