VBA如何根据某单元格内容锁定某区域
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VBA如何根据某单元格内容锁定某区域相关的知识,希望对你有一定的参考价值。
在每行(假设a1:g1、a2:g2、a3:g3、......)的h1、h2、h3、......输入内容为“保存”后,对应的a1:g1、a2:g2、a3:g3、......就锁定不能修改,请教VBA如何实现?多谢。
今天有空帮你写个简单的代码,基本能满足你的要求,但要达到适用阶段,代码还得完善
Private Sub Worksheet_Change(ByVal Target As Range)If Target.CountLarge > 1 Then Exit Sub
If Not Intersect(Target, Range("H:H")) Is Nothing Then
If Target = "保存" Then
ActiveSheet.Unprotect "123"
Target.Offset(, -7).Resize(, 7).Locked = True
ActiveSheet.Protect "123"
ActiveSheet.EnableSelection = xlUnlockedCells
End If
End If
End Sub
注意代码不是放在标准模块里
来自:求助得到的回答 参考技术A Private Sub Worksheet_SelectionChange(ByVal Target As Range)On Error Resume Next
With Target
If Sheet1.Cells(.Row, 8) = "保存" And .Column < 9 Then
Sheet1.Cells(Sheet1.[H65536].End(xlUp).Row + 1, 8).Select
End If
End With
End Sub
以上在表1中的操作代码。
感谢wwj805解答。现实中有多张表(sheet1、sheet2、sheet3、......)多人录入,麻烦再设置一下工作簿里的全部工作表,只要Z15、Z16、Z17、......、Z1014这些单元格的值为"已核对",则对应行的M15:Y15、M16:Y16、M17:Y17、......、M1014:Y1014就锁定不能修改(请看附图),劳烦再设置一下,多谢。
On Error Resume Next
With Target
If ActiveSheet.Cells(.Row, 26) = "已核对" And .Column >= 13 And .Column <= 26 Or .Count > 1 Then
ActiveSheet.Cells(ActiveSheet.[Z65536].End(xlUp).Row + 1, 26).Select
End If
End With
End Sub
将代码放到ThisWorkBook中。代码中已另外增加.Count > 1,以免他人块操作误删除已录入的内容,当然删除了就是空白项,而后不能再补录入。如果觉得.Count > 1这代码不需要,可以删除。
本回答被提问者和网友采纳 参考技术B 工作表保护,所有区域取消保护确认保存后,指定单元格区域设置为保护 参考技术C 数据验证就可以为啥非要整个vba
按键精灵中,怎么得到excel某单元格内容?
按键精灵中,怎么样把某单元格的内容 到 剪贴板?
也就是怎么样复制某一单元格?
你好,ZYLHLB.那怎么样才可以让读出来的内容写入剪切板呢?
1.首先来建立一个新的Excel文档,在桌面上点击右键,选择【新建】-【Excel工作表】,命名为【新手学员】。
2.现在这个新Excel文档是空白的,我们接下来会通过按键精灵的脚本来打开并写入一些数据。
3.打开按键精灵软件,点击【新建】,进入我的脚本界面,再点击进入【全部命令】。
4.在【全部命令】中选择【插件命令】-【office办公文档插件】-【打开Excel文档】。
5.在命令的下面可以看到命令的详细设置,点击【路径】。
6.在弹出窗口中选择【新手学员】的Excel文档,点击打开。
7.可以在命令参数中看到引用的文档,点击插入就可以插入对应的命令脚本。
8.继续在文档中写入新的数据,选择命令【writeXls 写入Excel文档单元格】,选择对应的单元格的行和列,输入要写入单元格的内容【"序号"】,点击插入。
9.在脚本界面可以看到新插入的代码。
10.根据类似的格式,可以添加其它代码,一共写入3行4列的单元格内容。
11.最后选择【closeXls 关闭文档】,点击插入对应的代码。
12.修改脚本属性的描述和保存的脚本文件名。保存脚本后按【F10】进行脚本调试。
13.脚本执行完成后,再次打开这个Excel文档,可以看到刚才设置的数据已经成功写入了。
参考技术A //下面这句是向Excel文档工作表(1)单元格(1, 1)读出内容存入(Text)变量Plugin Text = Office.ReadXls(1, 1, 1, "C:\测试.xls")
//下面这句是获得剪切板内容
Plugin Clipboard = Sys.GetCLB()
//下面这句是输出剪切板内容
SayString Clipboard本回答被提问者采纳 参考技术B 占个座,学习一下
以上是关于VBA如何根据某单元格内容锁定某区域的主要内容,如果未能解决你的问题,请参考以下文章