Невозможно перейти на другой лист - PullRequest
0 голосов
/ 06 апреля 2020

Приведенный ниже код записывается в код листа (называемого «Начальная страница»), а не подключается к кнопке.

Для справки, ячейка C17 спрашивает пользователя листа, готовы ли они. для начала, и у них есть проверка данных в D17, связывающая с M2 (Да) и M3 (Нет). Идея состоит в том, что когда пользователь выбирает «Да», код активируется и автоматически переходит на следующий лист («Страница выбора»). Если они выберут «Нет», появится всплывающее окно, сообщающее о закрытии книги (я еще не написал этот код).

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

Я был бы очень признателен, если бы кто-то мог просмотреть код, чтобы увидеть, что мне не хватает. Я пробовал Range("D17") и Range("D17").Value, но все равно ничего. Спасибо

РЕДАКТИРОВАТЬ - последний код указан ниже

Private Sub Worksheet_Change()
Dim output As Integer

Application.ScreenUpdating = False

Dim output As Integer

    If Sheets("Start page").Range("D17") Is Nothing Then GoTo ExitHandler

    If Sheets("Start page").Range("D17") = Sheets("Start page").Range("M2") Then
        Sheets("Selection page").Activate
    Else
        output = MsgBox("This sheet will now close.", vbCritical, "Closing")
        Activebook.Close

ExitHandler:
    Application.ScreenUpdating = True

End Sub

1 Ответ

0 голосов
/ 06 апреля 2020

В настоящее время у вас нет ничего , запускающего код. Возможно, вы захотите перевести это ie в событие рабочего листа, например Worksheet_Change или Worksheet_SeletionChange

. Быстрый способ проверить, какие события доступны, - это go до верхней части панели кода. выберите объект «Рабочий лист» из раскрывающегося списка «Левый» и выберите «Четвертое из правого». Это также автоматически добавит правильный список параметров: The two drop down menus at the top of the code pane

Событие «Изменение» произойдет при изменении какой-либо ячейки на рабочем листе, в то время как событие «SelectionChange» произойдет, когда вы выбираете что-то новое, даже если вы не изменили старую вещь

Для события «Изменение» рабочего листа есть 1 параметр, ByVal Target As Range - это диапазон ячеек, который был изменен. Так, например, вы можете использовать MsgBox "Row " & Target.Row & " was changed" для отображения сообщения о том, в какой строке находится измененная ячейка.

Поскольку Событие автоматически передает Аргумент в Sub, вам необходимо иметь там Parameter «поймать» это.

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