Я хотел бы запретить редактирование ячейки, поскольку мне нужно сохранить формулу в ней. Проблема в том, что я хочу скопировать вставки большой диапазон значений из другой книги в мой лист, а целевой диапазон для вставки включает некоторые ячейки, которые не должны меняться. Таким образом, простая функция блокировки не будет работать, так как это помешает мне выполнить эту операцию за один раз.Excel VBA - запретить изменение ячейки при редактировании
Я попытался использовать код, в котором ячейка меняет свою формулу после изменения ячейки, однако это дает бесконечный цикл. См. Упрощенный пример ниже:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("F28")) Is Nothing Then
Range("F28").Formula = "=if(E28=0,0,G28/E28)"
End If
End Sub
Большое спасибо за вашу помощь, высоко оценили.
Редактировать: Автоматическое решение, которое будет передаваться из этой другой книги, не будет работать, поскольку я получаю эти файлы в различных форматах и именах книг.
Я предполагаю, что вы добавили этот код на лист, в который вы вставляете (а не в стандартный модуль для книги). Оберните If/EndIf в Application.EnableEvents = False и Application.EnableEvents = True, чтобы избежать бесконечного цикла. – chuff
@chuff, извините, я не видел ваши комментарии раньше ... –
спасибо, очень признателен! – jcv