如何lockingVBA中的Excel单元格?

我有一个Excel工作表,就像一个应用程序,与表单控件button,允许用户“导航”通过logging。 首先,“上一个”,“下一个”和“上一个”循环通过其中一个工作表logging进行适当的处​​理,在“表单”工作表中显示值。

当用户不在编辑或添加模式时,我想locking单元格以防止用户修改内容。

我试过Range(“A1:O24”).Locked = True,但是我仍然可以在单元格中input新的值。

任何人都知道如何做到这一点? 我需要我的vba代码能够为用户导航时为单元格分配新的值,但要防止用户input新的值,除非在添加或编辑模式下。

我相信这样做的原因是,您需要在单元格实际locking之前保护工作表。 所有的单元格都被设置为默认locking状态,所以你真正想要做的就是设置你不想locking到Range()的范围。Locked = False然后设置工作表为保护状态。

如果您希望所有单元格都被locking,则必须将工作表设置为受保护

search用户是否不处于编辑或添加模式,然后locking您的范围,最后保护您的工作表。

比如说,在一种情况下,如果你想locking范围A1到I50的单元格,那么下面是代码:

 Worksheets("Enter your sheet name").Range("A1:I50").Locked = True ActiveSheet.Protect Password:="Enter your Password" 

在另一种情况下,如果您已经有受保护的工作表,请按照以下代码操作

 ActiveSheet.Unprotect Password:="Enter your Password" Worksheets("Enter your sheet name").Range("A1:I50").Locked = True ActiveSheet.Protect Password:="Enter your Password" 
Interesting Posts