Код VBA в рабочем листе не будет работать на другом компьютере до запуска другого макроса - PullRequest
0 голосов
/ 08 января 2019

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

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

Вещи, которые я пробовал: 1. Я добавил вкладку «Настройка / Инструкции», для которой требовались флажок и нажатие кнопки, чтобы отобразить вкладку «Настройка». Не решить эту проблему. 2. Я спрятал все на вкладке настройки, за исключением одной кнопки «Пуск», которая отображает все объекты и текст в форме. Не работал.

Часть кода, находящегося на вкладке «Настройка»:

Private Sub Worksheet_Change(ByVal Target As Range)

ActiveSheet.Unprotect

If Not Intersect(Target, Range("D2")) Is Nothing Then

Call UpdateName

End If

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

1 Ответ

0 голосов
/ 09 января 2019

В то время как Worksheet_Change не запускал бы какой-либо код, Worksheet_Activate выполнял, и, похоже, сработало. Я добавил простой Range("D2").Select, и он начал работать. Понятия не было, что вызвало это, и только один из пяти пользователей тестировал документ, но сейчас он работает.

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