VBA для вставки данных в ячейки без изменения формата

У меня есть защищенная рабочая книга с макросами, в которой пользователю разрешено редактировать только определенные поля или строки (от 150 до 200) на всех листах.

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

Я попытался использовать следующее, но это не помогло. Пожалуйста, предложите.

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) On Error Resume Next Target.PasteSpecial xlPasteValues Application.CutCopyMode = True End Sub 

Сделайте снимок:

 Option Explicit Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Target.Row >= 150 And Target.Row <= 200 Then Dim vNewValues as Variant NewValues = Target Application.EnableEvents = False Application.Undo Target = NewValues Application.EnableEvents = true End If End Sub 

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

Условие If может нуждаться в настройке на основе ваших фактических требований.

 Range.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks 

Следует просто скопировать значения без копирования форматирования из начального диапазона.

Давайте будем гением компьютера.