-1

我得到了我在谷歌找到的这段代码。(http://msgroups.net/microsoft.public.excel.misc/locking-cells-automatically-after/45998)我的工作需要这个。-编辑:我对 Excel 的了解为零

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

我需要让代码最多可用于列“J”并且对于行是无限的。我在谷歌得到的这段代码最多只能是 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
4

2 回答 2

1

实际上你的代码不会工作,我已经测试过了。最好设置默认锁定它。然后为这些单元格制作了一个表格来更改。每次点击更改,都会解锁,更改后会自动锁定。不是更安全吗。你最好试试你的逻辑。如果发现您根本没有努力,请从您的代码中获取!它只是从该链接复制粘贴。

于 2013-04-24T08:17:23.393 回答
0

如果问题是您对 Excel VBA 一无所知,那么以下站点应该可以帮助您:

以下是一些其他网站供您阅读:

祝你好运

菲利普

于 2013-04-24T08:22:55.480 回答