我有一个宏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
答案 0 :(得分:0)
假设您使用的是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