locking/解锁单元格VBA
我一直在寻找一个代码来locking工作表中的所有单元格,但是我发现这个代码:
Worksheets("SW").Range("D2").Locked = False Worksheets("SW").Protect UserInterfaceOnly:=True
它真的很好,直到我保存它,再次closures/打开文件,然后我运行的任何macros。
我想这是因为在该表中,我有不同的macros,我也有macros单元格更改时运行:
Private Sub Worksheet_Change(ByVal Target As Range)
你有什么想法如何使其工作?
还有一件事,这个工作簿将被共享,所以我不知道会影响macros。
对不起,也许我太模棱两可了。
是的,我想阻止他人改变细胞的价值。
我想只有一个单元格可以改变,所以其他所有的单元格都随着macros而改变。
再次感谢你的帮助
PS:是的艾哈迈德·穆塔瓦(Ahmad Al-Mutawa),即使在项目被保存,closures和打开后,我也不可能改变这张纸。
如果你需要更多的信息只是告诉我,我会尽量做到更具体。
您的文件是否有任何其他操作的macros,而不是您想要实现的这个锁解锁代码?
如果是这样,我build议你在vba中有一个代码。 否则,您可以简单地locking工作表,以防止用户在没有代码的情况下随时改变某些事物。
你认为这可能比[代码] [1]更好吗?
出于好奇:任何机会你有一个问题不知道在哪里和如何触发这个代码块?
编辑的代码: –您的评论不清楚,无可指责,我相信你想使用一个macros。 假设您想要保护/locking或取消保护Sheet1,请尝试以下操作。 : –
在此工作簿的Workbook open event中添加以下代码: –
Private Sub Workbook_Open() Dim shtSheet As Worksheet Dim strPassword As String strPassword = "stack" Set shtSheet = Worksheets("Sheet1") shtSheet.Protect Password:=strPassword, UserInterfaceOnly:=True End Sub
接下来在模块中添加以下内容。 并在完成运行macros后调用它。
Sub ProtectSheet() Dim shtSheet As Worksheet Dim strPassword As String strPassword = "stack" Set shtSheet = Worksheets("Sheet1") shtSheet.Protect strPassword End Sub