Страницы: 1
RSS
Запрет вставлять ячейки при копировании, вставить только значения
 
Добрый день!

Пользователи таблицы забывают при копировании вставлять как значение. И своим копированием ячеек затирают выпадающие списки и условное форматирование в этой таблице. После их работы файл как после бомбежки - по всей таблице сотни кусочков старых правил( По смыслу должно быть так, если пользователь сознательно меняет заливку - то у него должна быть такая возможность. Но если он копирует диапазон - то обязан вставить его как значения. Я пытался защитить лист от форматирования, но для вставки ячеек это не оказалось преградой.
Кто-нибудь знает как можно бороться с этой проблемой. Можно ли средствами VBA отлавливать вставку ренжа и чтоб это надежно работало в пределах конкретной умной таблицы?
 
Код в модуль листа
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rr As Range
    Set rr = Target
    rr.Copy
    
    With Application
        .EnableEvents = 0
        .Undo
        Target.PasteSpecial xlPasteValues
        .EnableEvents = 1
    End With
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Спасибо.
Если попытаться заполнять таблицу руками, скрипт отменит написанное и вставит пустоту.
 
Дополните чутка:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Application.CutCopyMode Then
        Dim rr As Range
        Set rr = Target
        rr.Copy
         
        With Application
            .EnableEvents = 0
            .Undo
            Target.PasteSpecial xlPasteValues
            .EnableEvents = 1
        End With
    End If
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх