Используя Excel VBA для получения стандартного использования панели инструментов

Я ищу способ получить щелчок по стандартному инструменту панели инструментов в Excel с VBA. Насущная потребность состоит в том, чтобы получить любую Копию, Сокращение и запрос Вставки пользователем. Я могу получить горячие клавиши для этих функций, но я не могу найти способ получить те же функции, когда пользователь нажимает на значок на стандартной панели инструментов или когда пользователь использует меню для выбора функции.

0
задан 01.03.2010, 22:46

1 ответ

Вот является пример отмены от 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
0
ответ дан 27.11.2019, 20:00

Теги

Похожие вопросы