Excel中如何动态改变可编辑区域?
有这样一个工作场景:我们制作一个工作报表模板给同事填写数据,这个工作表格只可以在预设的可编辑区域编辑,其它都是受密码保护的,而且这个可编辑区域是随着日期——工作周的变化而发生变化的。也就是说在不同的工作周可编辑的区域是会变动的。怎么实现呢?我们来看下具体的步骤吧。
实现步骤:
我们的工作表格的每个可编辑区域大小都是一样的,所不同的是分布的位置不同。如:第一周可编辑区域是$G:$8:$M$32,第二周的可编辑区域是$G:$37:$M$61第三周……以此类推。
首先我们先构造一个张每周可编辑区域对照表:
具体公式如图:
2.按ALT+F11进入VBE编程环境,创建模块1,输入如下代码:
Sub auto_open()
ActiveSheet.Unprotect Password:='123''去除密码
ActiveSheet.Protection.AllowEditRanges('区域2').Delete’删除可编辑区域
ActiveSheet.Protection.AllowEditRanges.Add Title:='区域2', Range:=Range('G' & Range('$XEZ$3') & ':M' & Range('XFA3'))’创建可编辑区域,这里的可编辑区域由上面所构造的周对照表确定。
ActiveSheet.Protect Password:='123', DrawingObjects:=True, Contents:=True, Scenarios:=True'设置密码
Range('G' & Range('$XEZ$3')).Select’选择可编辑区域的第一个单元格
End Sub
如图:
3.将文档保存为代有.xlsm后缀的代有程序的Excel文档。
这样当双击打开此文档便会定位到可编辑区域了,除当前周外的其它区域是受保护不可编辑的。