修法布施得聪明智慧,多分享让生活更美好。工作中有时需要对单元格输入次数限制保护数据,超过次数需要密码才能输入,下面通过一实例说明处理方法。
工具/原料
MicrosoftOfficeExcel2007
ExcelVBA
实例问题
1、表格Sheet1中如何让A1单元格只能输入一次,一次修改就得输入密码?(百度知道问题)
处理方法/步骤
1、首先打开Mic筠续师诈rosoftOfficeExcel2007,新建文档并保存文件名《Excel怎样设置单元格输入次数限制.xlsm》(演示文件,下面代码复制到能运行宏的工作簿都可以)如图。
2、将工作表“Sheet3”改名为“mm”。
3、鼠标移到当前工作表标签栏“Sheet1”表(需要在哪表设置在哪表),右键,弹出快捷菜单,如下图。
4、在快捷菜单找到【查看代码】并单击,打开VBE(宏)编辑界面,如下图。
5、在右边代码框中复制下面代码到该框中,如下图。PrivateSubWorkshe娣定撰钠et_Change(ByV锾攒揉敫alTargetAsRange)'2020-7-621:50:24IfTarget.Row=1AndTarget.Column=1Then'a1IfSheets("mm").Range("m1").Value<1ThenSheets("mm").Range("m1").Value=Sheets("mm").Range("m1").Value+1ActiveSheet.ProtectPassword:="a888",DrawingObjects:=True,Contents:=True,Scenarios:=TrueActiveWorkbook.SaveElseSheets("mm").Range("m1").Value=Sheets("mm").Range("m1").Value+1ActiveSheet.ProtectPassword:="a888",DrawingObjects:=True,Contents:=True,Scenarios:=TrueActiveWorkbook.SaveEndIfEndIfEndSubPrivateSubWorksheet_SelectionChange(ByValTargetAsRange)'2020-7-621:55:24DimmAsStringIfTarget.Row=1AndTarget.Column=1Then'a1IfSheets("mm").Range("m1").Value>=1ThenApplication.DisplayAlerts=Falsem=Application.InputBox(Prompt:="请输入密码才能修改A1单元格",Type:=2)Ifm="a888"ThenActiveSheet.Unprotect("a888")ElseMsgBox"密码不正确!"Range("a2").SelectEndIfApplication.DisplayAlerts=TrueEndIfEndIfEndSub
6、然后把工作表mm设置隐藏,在VBE窗口,选工作表mm,按F4,弹出"杨钭维程属性-Sheet3"属性窗口,在Visible项目选2-xlSheetVeryHidden。
7、VBE窗口设置密码:M888,具体方法详见我的百度经验《Excel怎样加密多表查找数据列表》中方法二:VBA:8条。
8、以上操作动态步骤如下:
9、回到“Sheet1”表窗口,A1输入情况,第一次不需要密码,第2次后需要密码(“a888”),结果如下:
10、需要输入n次时,需把代码修改下可以跷孳岔养。IfSheets("mm").Range(&鳎溻趄酃quot;m1").Value<1改为IfSheets("mm").Range("m1").Value<nIfSheets("mm").Range("m1").Value>=1Then改为IfSheets("mm").Range("m1").Value>=n
11、如果觉得这篇经验帮到了您,请点击下方的“投票点赞"或者“收藏”支持我!还有疑问的话可以点击下方的“我有疑问”,谢谢啦!