Страницы: 1
RSS
"отловить" на листе процедуру копирования VBA, VBA
 
Доброго времени суток!
Вопрос,
Можно ли с помощью VBA средств запретить на листе копирования?
Либо при переходе на лист отчищался буфер и  копировать было нечего?
 
И у меня вопрос: ЗАЧЕМ писать через строку? (пустые строки удалены)
 
В модуле листа:

Код
Private Sub Worksheet_Activate()
    Application.CutCopyMode = False
End Sub
Изменено: Johny - 29.04.2014 10:49:29
There is no knowledge that is not power
 
Комбинация Crtl+V работает, то есть отмену копирования обойти можно
 
В поиске запрос: запретить вставку
 
Только сразу надо предупредить: код Johny не даст вставить только скопированные ячейки. Если скопирован текст(в режиме редактирования ячейки) или данные из другого приложения - то данный подход не поможет. Но код можно дополнить:
Код
Private Sub Worksheet_Activate()
    Application.CutCopyMode = False
    With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .SetText ""
        .PutInClipboard
        .Clear
    End With
End Sub
Правда тоже есть косяк: если копировать из другого приложения и данный лист уже активирован - то код не сработает и текст будет вставлен без проблем.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
The_Prist пишет:
Правда тоже есть косяк: если копировать из другого приложения и данный лист уже активирован - то код не сработает и текст будет вставлен без проблем.
Да, забыл про этот момент.  :)
Тогда отслеживать Workbook_Open.
Изменено: Johny - 29.04.2014 12:11:07
There is no knowledge that is not power
 
Workbook_Open тоже не пойдет. Если книга открыта уже и лист активирован. Просто перешли в другое приложение(даже не сворачивая - просто активировали окно другого приложения) - в Excel нет события на этот случай. Все, можно копировать и ничто не спасет. Только через API опрашивать хендлы и смотреть кто активен в данный момент...В общем, то еще занятие.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх