Помощь в разработке макросов, пожалуйста - PullRequest
0 голосов
/ 05 мая 2020

Таким образом, приведенный ниже код довольно понятен, но во избежание сомнений, это именно то, что он делает

Если я нажимаю клавишу ввода в любой ячейке в столбце X, он перемещает меня вниз к следующей строке, начиная с Col E. Во многом похоже на нажатие клавиши ввода в слове MS и, например, начало новой строки.

Однако, когда лист защищен от удаления формул, он перемещается в столбец C, а не в столбец E. Мне нужно попытаться заставить это работать в защищенном режиме, как это происходит в незащищенном режиме, это это код, который я и мой коллега придумали, но он не сработал. Обратите внимание, что мы новички, когда дело доходит до excel, поэтому, пожалуйста, ответьте, помня об этом.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Unprotect Password:="123456"
  If Target.CountLarge > 1 Then Exit Sub
  If Target.Column > 24 Then Cells(Target.Row + 1, "E").Select
ActiveSheet.Protect Password:="123456"
End Sub

1 Ответ

0 голосов
/ 05 мая 2020

Когда вы выбираете ячейку, вы запускаете свой макрос, а затем, когда ваш макрос выбирает другую ячейку, вы повторно запускаете свой макрос, а затем, когда ваш макрос выбирает ...

Вы входите в бесконечный l oop, в результате чего ваш экземпляр Excel выдает ошибку sh. Отключите Events перед выполнением каких-либо действий, которые могут вызвать ваш макрос, например:


Application.EnableEvents = False
    'Select cell here
Application.EnableEvents = True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...