Есть ли способ заблокировать некоторые ячейки Excel для ввода после нажатия кнопки отправки? - PullRequest
1 голос
/ 06 июня 2019

У меня есть макрос Excel, в котором после заполнения некоторой информации я нажимаю кнопку «Отправить», и файл отправляется по электронной почте. Что мне нужно, так это то, что в процессе между запуском функции отправки и отправкой электронного письма файл блокируется для предыдущего редактирования. Любая помощь будет великолепна, спасибо.

Я попробовал следующий код, но он не работает

Set MyRange = Intersect(Range("J6:J7"), Target)
    If Not MyRange Is Nothing Then
        Sheets("Sheet").Unprotect Password:="123"
        MyRange.Locked = True
        Sheets("Sheet").Protect Password:="123"
    End If

1 Ответ

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

Предполагая, что вы используете Worksheet_Change(ByVal Target As Range), я изменил MyRange.Locked = True на Cells.Locked = True, чтобы защитить весь ваш рабочий лист.

Ожидаемый результат заключается в том, что всякий раз, когда изменение в J6 или J7 вызывает срабатывание защитыдля всей таблицы.

Set MyRange = Intersect(Range("J6:J7"), Target)
    If Not MyRange Is Nothing Then
        Sheets("Sheet").Unprotect Password:="123"
        Cells.Locked = True
        Sheets("Sheet").Protect Password:="123"
    End If

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

        If Len(Range("J6").Text) <> 0 Or Len(Range("J7").Text) <> 0 Then
            Sheets("Sheet").Unprotect Password:="123"
            Cells.Locked = True
            Sheets("Sheet").Protect Password:="123"
        End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...