Как заблокировать ячейку от удаления или замены, НО чтобы осталась возможность ее редактирования. К ячейке есть примечание, пояснения, в ней установлен определенный размер шрифта; чтобы все это сохранилось, нужно, чтобы пользователь мог вносить изменения в саму ячейку, но не мог ее заменить или удалить.
Как заблокировать ячейку от удаления или замены, НО чтобы осталась возможность ее редактирования. К ячейке есть примечание, пояснения, в ней установлен определенный размер шрифта; чтобы все это сохранилось, нужно, чтобы пользователь мог вносить изменения в саму ячейку, но не мог ее заменить или удалить.AlexanderIvanov
Спасибо за ответ! Но, к сожалению, эту ячейку можно не только редактировать, но и заменить другой ячейкой. Объясню: люди, работающие с этой таблицей, должны иметь возможность только вставлять в нее значения, но чтобы при этом нельзя было полностью заменить ячейку другой ячейкой. Заранее спасибо за ответ!
Спасибо за ответ! Но, к сожалению, эту ячейку можно не только редактировать, но и заменить другой ячейкой. Объясню: люди, работающие с этой таблицей, должны иметь возможность только вставлять в нее значения, но чтобы при этом нельзя было полностью заменить ячейку другой ячейкой. Заранее спасибо за ответ!AlexanderIvanov
Ну, к примеру, у меня в ячейке настроен шрифт, размер шрифта, цвет, примечание и т.п. Если кликнуть на ее 2 раза и вставить только текст - все параметры ячейки сохранятся. Если же скопировать другую ячейку ctrl+c и вставить на место исходной ctrl+v, то все настройки ячейки слетят. Надо, чтобы этого нельзя было сделать.
Ну, к примеру, у меня в ячейке настроен шрифт, размер шрифта, цвет, примечание и т.п. Если кликнуть на ее 2 раза и вставить только текст - все параметры ячейки сохранятся. Если же скопировать другую ячейку ctrl+c и вставить на место исходной ctrl+v, то все настройки ячейки слетят. Надо, чтобы этого нельзя было сделать.AlexanderIvanov
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Target.Locked = Target.Locked End Sub
[/vba] Скопированный целиком вместе с форматированием ДИАПАЗОН/ЯЧЕЙКА будет сбрасываться из буфера обмена. А если из ячейки скопировано только ЗНАЧЕНИЕ (после дабл-клика или из строки формул), то нет. Если нужно не на всём листе, то можно ограничить Intersect'ом, но нужно знать диапазон "защищаемых" ячеек.
Ну, например, так: [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Target.Locked = Target.Locked End Sub
[/vba] Скопированный целиком вместе с форматированием ДИАПАЗОН/ЯЧЕЙКА будет сбрасываться из буфера обмена. А если из ячейки скопировано только ЗНАЧЕНИЕ (после дабл-клика или из строки формул), то нет. Если нужно не на всём листе, то можно ограничить Intersect'ом, но нужно знать диапазон "защищаемых" ячеек.Alex_ST
С уважением, Алексей MS Excel 2003 - the best!!!
Сообщение отредактировал Alex_ST - Четверг, 31.01.2013, 11:52
Большое спасибо! То, что надо! Одна проблема: почему перестала работать отмена действия, то есть после каждого изменения ячейки нельзя ctrl+z нажать - никакого эффекта. Как это пофиксить? Заранее спасибо за ответ!!
Большое спасибо! То, что надо! Одна проблема: почему перестала работать отмена действия, то есть после каждого изменения ячейки нельзя ctrl+z нажать - никакого эффекта. Как это пофиксить? Заранее спасибо за ответ!!AlexanderIvanov
Ну, батенька, Вы слишком много хотите: чтобы и макрос отрабатывал, и отмена была возможна Вот здесь описана реализация метода UnDo для макросов. Но я в ней не разбирался и не тестировал. Попробуйте сами. Вдруг получится? Хотя вряд ли. Ведь моя процедура никаких действий не производит и потому отменять нечего. Просто в ней используется паразитный эффект Excel'я - сброс буфера при некоторых действиях с ячейками. Я выбрал первую из них, что на ум пришла - последовательную установку-снятие свойства ячейки "Защищаемая".
Ну, батенька, Вы слишком много хотите: чтобы и макрос отрабатывал, и отмена была возможна Вот здесь описана реализация метода UnDo для макросов. Но я в ней не разбирался и не тестировал. Попробуйте сами. Вдруг получится? Хотя вряд ли. Ведь моя процедура никаких действий не производит и потому отменять нечего. Просто в ней используется паразитный эффект Excel'я - сброс буфера при некоторых действиях с ячейками. Я выбрал первую из них, что на ум пришла - последовательную установку-снятие свойства ячейки "Защищаемая".Alex_ST
С уважением, Алексей MS Excel 2003 - the best!!!
Сообщение отредактировал Alex_ST - Пятница, 01.02.2013, 21:41
Хм, но это просто как-то странно: если применить макрос к листу, а после этого совершать на нем какие-то действия (заполнять ячейки текстом, менять шрифты и т.п.) - и нельзя делать отмену. Неужели каждый макрос при его применении запрещает UnDo в отношении любых действий на листе? И еще одно: может, возможен макрос, чтобы пользователь копировал ячейку, а когда вставлял ее - то вставлялось только значение и формат ячейки, а не вся ячейка целиком? Заранее спасибо за ответ!
Хм, но это просто как-то странно: если применить макрос к листу, а после этого совершать на нем какие-то действия (заполнять ячейки текстом, менять шрифты и т.п.) - и нельзя делать отмену. Неужели каждый макрос при его применении запрещает UnDo в отношении любых действий на листе? И еще одно: может, возможен макрос, чтобы пользователь копировал ячейку, а когда вставлял ее - то вставлялось только значение и формат ячейки, а не вся ячейка целиком? Заранее спасибо за ответ!AlexanderIvanov
если применить макрос к листу, а после этого совершать на нем какие-то действия - и нельзя делать отмену
Кто Вам такое сказал?!
Цитата (AlexanderIvanov)
Неужели каждый макрос при его применении запрещает UnDo в отношении любых действий на листе?
Ни в коем разе! Каждый макрос просто очищает стек памяти последних действий пользователя на момент выполнения макроса и именно поэтому UnDo становится недоступным
Цитата (AlexanderIvanov)
возможен макрос, чтобы пользователь копировал ячейку, а когда вставлял ее - то вставлялось только значение и формат ячейки, а не вся ячейка целиком?
Конечно. Можете записать сиё действие макрорекордером и повесить на кнопку или сочетание клавиш А в Excel младше 2003 это возможно одним кликом мышки или сочетанием клавиш вообще без макроса
Цитата (AlexanderIvanov)
если применить макрос к листу, а после этого совершать на нем какие-то действия - и нельзя делать отмену
Кто Вам такое сказал?!
Цитата (AlexanderIvanov)
Неужели каждый макрос при его применении запрещает UnDo в отношении любых действий на листе?
Ни в коем разе! Каждый макрос просто очищает стек памяти последних действий пользователя на момент выполнения макроса и именно поэтому UnDo становится недоступным
Цитата (AlexanderIvanov)
возможен макрос, чтобы пользователь копировал ячейку, а когда вставлял ее - то вставлялось только значение и формат ячейки, а не вся ячейка целиком?
Конечно. Можете записать сиё действие макрорекордером и повесить на кнопку или сочетание клавиш А в Excel младше 2003 это возможно одним кликом мышки или сочетанием клавиш вообще без макросаSerge_007
Спасибо за совет! Все решилось написанием простейшего макроса: нажимаем ctrl+c, включаем запись, назначаем горячую клавишу, делаем вставку значения и формата в ту же ячейку, выключаем запись. Все! Одна только проблема - вставленное таким макросом значение через ctrl+z уже не отменяется. Это как-то можно исправить? Спасибо за терпение!
Спасибо за совет! Все решилось написанием простейшего макроса: нажимаем ctrl+c, включаем запись, назначаем горячую клавишу, делаем вставку значения и формата в ту же ячейку, выключаем запись. Все! Одна только проблема - вставленное таким макросом значение через ctrl+z уже не отменяется. Это как-то можно исправить? Спасибо за терпение!AlexanderIvanov
Ваабще не разбираюсь в этих макросах, по ссылке ниче не понял. У меня макросы то работают, то не работают. Скажите, сколько будет стоить такая услуга, чтобы Вы мне прописали это макрос? Чтобы в рамках конкретного листа можно было на ctrl+v вставлять только значения и форматы и при этом можно было бы через ctrl+z это действие отменять?
Ваабще не разбираюсь в этих макросах, по ссылке ниче не понял. У меня макросы то работают, то не работают. Скажите, сколько будет стоить такая услуга, чтобы Вы мне прописали это макрос? Чтобы в рамках конкретного листа можно было на ctrl+v вставлять только значения и форматы и при этом можно было бы через ctrl+z это действие отменять?AlexanderIvanov