Как избежать перезаписи / потери данных в Excel при копировании? - PullRequest
0 голосов
/ 07 июня 2019

У меня есть книга с поддержкой макросов, и существуют определенные проверки данных, такие как входные сообщения и т. Д., Определенные и используемые в коде VBA для правильной работы макросов.Но когда пользователи пытаются скопировать и вставить данные из других источников, эти проверки теряются, и, в свою очередь, макросы при запуске приводят к ошибкам во время выполнения.

Я пытался исследовать несколько сайтов и мог видеть только такие варианты, как ограничениеСкопируйте или вставьте предупреждение.Но для моего бизнес-случая пользователи работают с огромными наборами данных, и ограничение вставки копий не является удобным для пользователя способом.

Следовательно, любые возможные решения будут очень полезны!~ Спасибо, JM

1 Ответ

0 голосов
/ 07 июня 2019

Вы можете использовать логический тип данных для отслеживания «Application.CutCopyMode» в событии Workbook.Activate.

Private blCCP As Boolean 'Boolean CutCopyPaste

Private Sub Workbook_Activate()
    If Application.CutCopyMode Then
        blCCP = True
    End If
End Sub

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
    If blCCP = True Then
        '
        'Enter code to apply data validation
        '
        blCCP = False
    End If
End Sub

Это определит, включен ли CutCopyMode при активации вашей рабочей книги.После того, как пользователь вставит куда-нибудь в книгу, событие Workbook_SheetCalculate инициируется.В этом случае добавьте код VBA, чтобы применить всю проверку данных.

Надеюсь, это вам поможет.

Редактировать: убедитесь, что этот код введен в ThisWorkbook в Объекты Microsoft Excel в окне проекта.

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