Вы должны попытаться использовать События в своей рабочей книге. Извините, если мои переводы не соответствуют вашему Excel, но у меня есть польская версия MS Office. Однако, если вы нажмете CTRL + F11 и откроете редактор VB на панели проекта, у вас должно появиться что-то вроде «Объекты Microsoft Excel» и объекты, соответствующие электронным таблицам и рабочей книге. Теперь в ThisWorkbook поместите код
Option Explicit
Private Sub WorkBook_Open()
MsgBox "this happens when workbook is opened"
Application.OnKey "^v","my_function"
End Sub
Этот код переопределяет CTRL + V и запускает my_function () при нажатии этой комбинации клавиш. Учитывая вышеописанную функцию, вы можете вставить новый модуль и добавить туда подпрограмму, например,
Option Explicit
Sub my_function()
MsgBox "you have pressed ctrl+v"
Selection.PasteSpecial Paste:=xlPasteForumlas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End Sub
Для получения дополнительной информации о событиях см., Например. http://www.cpearson.com/excel/Events.aspx
Если приведенный выше код не работает, проверьте значение Application.EnableEvents и, если необходимо, измените его значение в ближайшем окне.
Более того, в Sheet1 вы можете попытаться что-то сделать с событием change. Используя это событие, вы можете помешать Excel изменить стили, хотя первое решение должно быть более сложным для реализации. Ниже приведен код события изменения.
Option Explicit
Private Sub WorkSheet_Change(ByVal Target As Range)
MsgBox "the value was changed"
End Sub
Надеюсь, это помогло.
Некоторые ссылки на события в Excel