Я ищу способ получить щелчок по стандартному инструменту панели инструментов в Excel с VBA. Насущная потребность состоит в том, чтобы получить любую Копию, Сокращение и запрос Вставки пользователем. Я могу получить горячие клавиши для этих функций, но я не могу найти способ получить те же функции, когда пользователь нажимает на значок на стандартной панели инструментов или когда пользователь использует меню для выбора функции.
Вот является пример отмены от John Walkenbalk http://www.j-walk.com/ss/excel/tips/tip23.htm
Я также использовал макрос (Названный worksheet_change событием), чтобы вынудить пользователя 'вставить особенный'. Это должно дать Вам хорошую начальную точку.
Sub pastefix()
Dim UndoString As String
Dim srce As Range
On Error GoTo err_handler
UndoString = _
Application.CommandBars("Standard").Controls("&Undo").List(1)
If Left(UndoString, 5) <> "Paste" And UndoString <> "Auto Fill" Then
Exit Sub
End If
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Undo
If UndoString = "Auto Fill" Then
Set srce = Selection
srce.Copy
ActiveCell.PasteSpecial _
Paste:=xlPasteValues, _
Operation:=xlNone, _
SkipBlanks:=False, _
Transpose:=False
Union(ActiveCell, srce).Select
Else
ActiveCell.PasteSpecial _
Paste:=xlPasteValues, _
Operation:=xlNone, _
SkipBlanks:=False, _
Transpose:=False
End If
Application.CutCopyMode = False
Application.ScreenUpdating = True
Application.EnableEvents = True
Exit Sub
err_handler:
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.CutCopyMode = False
End Sub