如何在数据输入后锁定行的一部分

DCA12

我早上的大部分时间都在 Excel 中的 vba 中使用我通过本网站遇到的一些零碎代码,但我现在没有运气。我已经设法让一些复杂的(或无论如何对我来说很复杂,我绝对不是专家!)部分工作,但我在这里遇到了砖墙。

我们正在创建一个工作表供员工输入信息。它目前有 19 个标题栏 (A – S),员工数据输入从第 20 行开始。有 2500 行。

我们试图实现的是,当员工到达他们所在行的 L 列并向其中输入数据时,该特定行在单元格 AL 之间受到密码保护。MS 应该仍然是可编辑的,但 AL 应该被锁定为编辑。

锁应该只影响用户正在处理的行。所以下一个用户可以在下面的行中输入他们的信息,它会再次锁定 L,重复这个直到 2500。

到目前为止我所尝试的一切都导致整个工作表在 L 中输入时被锁定。我最接近我的目标是设法让一行锁定 L 中的数据输入,但它锁定了整行,不只是AL(然后我被锁定并不得不重新开始)。

如果有一个弹出框警告用户在 L 中输入数据将锁定前面的单元格会很方便,但这并不重要,我可以在顶部写一个注释。

有任何想法吗?我一直在兜圈子,感觉就像是几个小时。

在此先感谢您的帮助!

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Target.Column = 12 Then 
        Range("A21,B21,C21,D21,E21,F21,G21,H21,I21,J21,K21,L21").Locked = True 
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True 
    End If 
End Sub
随机用户

我想你可以从这样的事情开始:

Private Sub Worksheet_Change(ByVal Target As Range)
    Const PASSWORD = "PASSWORD"
    Dim Row As Long
    If Target.Column = 12 Then
        Target.Parent.Unprotect PASSWORD
        Row = Target.Row
        Target.Parent.Range("A" & Row & ":" & "L" & Row).Locked = True
        Target.Parent.Protect PASSWORD
    End If
End Sub

必须将此代码插入要保护的工作表中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在数字上比较字符串的一部分然后输出匹配的行?

如何在数组中搜索值的一部分

使用grep过滤后如何忽略行首和行的一部分

如何在ffmpeg中仅输入视频文件的一部分

如何在单词索引后获取标题的一部分 - wordpress

如何在是/否收音机后显示表格的一部分?

如何在 vscode 中注释一行代码的一部分

如何在PHP中仅回显数据的一部分?

如何在 Pandas 数据帧的一部分上使用 std 函数?

如何在Linux中删除行的一部分?

如何在记事本++中删除行的一部分?

如何从api的一部分接收数据到另一部分

仅锁定Apache Jena TDB中数据集的一部分

如何从另一个线程锁定方法的一部分?

热图仅在数据框的一部分上?

搜索json文件在数据框列中返回键的一部分

在数据框的列中排除一部分字符串

使用该行的一部分索引到file2并查找值后,如何在该行的每一行附加值?

Rails如何在数据库的字符串的第一部分和第二部分中搜索?

如何仅在数组Java的一部分上调用Collections.Shuffle

jQuery-如何找出变量的一部分是否在数组中

如何在我的代码的另一部分中使用输入框的结果?

如何在pandas数据框中创建新列,并用不同的方式替换每一行中的一部分字符串?

如何使用过滤后的数据框更新现有 Excel 表的一部分?

如何在空终止符后修剪字符串的一部分?

如何在特定子字符串后替换字符串的一部分

TypeScript - 返回一部分输入的函数

检查输入是否是列表的一部分

开关不带一部分输入?