Как работать с CTRL-V в Excel VBA / Macro? - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть VBA-макрос, который срабатывает каждый раз, когда в ячейку столбца A (Workbook_SheetChange) вводится одно значение.

Некоторые пользователи вставляют несколько ячеек или целую строку или умножают целые строкина листе, чтобы им было легче (CTRL-V).

Если вставить целую строку / строки, макрос завершится неудачно, иногда весь VBA_engine обрывается и пользователю необходимо перезапустить Excel.

Я хотел бы обрабатывать вставки (CTRL-V) таким образом, чтобы отключить VBA-код после нажатия CTRL-V, но до вставки содержимого в ячейки.После этого должен быть запущен VBA-код.

Как я могу это сделать?

1 Ответ

0 голосов
/ 11 февраля 2019

Проблема в том, что человек, который написал событие Worksheet_Change, не заставил его обрабатывать изменения из нескольких ячеек.Перепишите его или обязательно закройте событие, если выбрано более одной ячейки:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub

    'rest of the code here

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...