首页 > 解决方案 > 单击提交按钮后,有没有办法阻止某些 Excel 单元格输入?

问题描述

我有一个宏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

标签: excelvba

解决方案


假设您正在使用Worksheet_Change(ByVal Target As Range),我更改MyRange.Locked = TrueCells.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

推荐阅读