2013-04-24 75 views
-1

我得到了我在谷歌找到的这段代码。 (http://msgroups.net/microsoft.public.excel.misc/locking-cells-automatically-after/45998) 我需要这个工作。 -EDIT:我在EXCEL中已经知道了Excel锁和网格错误

当前网格中的所有单元格都未锁定。 我想要做的是在输入数据 后,单元格会自动锁定。

我需要代码工作的最高列“J”和无限的行。 我在google中获得的这段代码最多只能使用25x25: 如果单元格清空或空白,则密码保护不应起作用,即使之前有数据,也可以自由输入。

Option Explicit 
Private Sub Worksheet_Change(ByVal Target As Range) 
    Dim myRng As Range 
    Dim myCell As Range 
    Dim myIntersect As Range 
    Dim myPassword As String 

    myPassword = "hi there" 

    With Me 'the worksheet with the code 
     '25 rows by 25 columns starting in A1 
     Set myRng = .Range("a1").Resize(25, 25) 

     Set myIntersect = Intersect(Target, myRng) 

     If myIntersect Is Nothing Then 
      Exit Sub 
     End If 

     .Unprotect Password:=myPassword 
     For Each myCell In myIntersect.Cells 
      myCell.Locked = True 
     Next myCell 
     .Protect Password:=myPassword 
    End With 

End Sub 
+0

只锁定单元格或锁定整个工作表? – Kasnady 2013-04-24 08:14:20

+0

进入特定单元后锁定 – 2013-04-24 08:49:47

+1

在寻求帮助之前尝试努力。我们只是帮助解决错误。无助于在家工作 – Kasnady 2013-04-25 00:53:38

回答

1

其实你的代码不行,我已经测试过了。 更好的是设置默认值来锁定它。然后为这些细胞做出改变。每次点击改变,它会解锁,然后改变它将锁定自己。这不是更安全。 你最好试试你的逻辑。从你的代码,如果发现你没有力气在所有!它只是从该链接复制粘贴。

+0

这就是我所说的。我在Excel中没有任何知识。这就是为什么我要求你们提供帮助。 – 2013-04-24 08:44:00

+0

从你所说的话来看:“每次点击改变,它会在更改后解锁,然后锁定自己。”你怎么做到这一点? – 2013-04-24 08:45:15

+1

您需要填写表格。在谷歌搜索。如何在Excel中使用VBA。在你努力之后。然后再询问 – Kasnady 2013-04-24 09:13:33

0

如果问题是你不知道的Excel VBA话,那么下面的网站应该可以帮助您:

这里是你的阅读其他几个网站:

最好的运气

菲利普