ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: txfshzg

[讨论] [求助]怎样才能在动态中锁定单元格?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2003-12-15 19:28 | 显示全部楼层
XPIbzvXF.rar (10.75 KB, 下载次数: 67)
这次试试能实现要求吗?由于原程序对Usedragne属性操作,具有格式的单元格也在范畴之内,所以会出现错误,是我一时失误,造成你的无法应用,抱歉!

TA的精华主题

TA的得分主题

发表于 2003-12-14 18:01 | 显示全部楼层
以下是引用txfshzg在2003-12-4 13:24:00的发言:
[em00]又有问题了!
如果有表格线,或者有底色的话,也就是说,单元格设置了格式的话,这个办法就不管用了!
还有,funcres 和 atpvbaen 为什么进不去,需要密码?
谢谢!


[此贴子已经被作者于2003-12-4 13:53:06编辑过]


代码属性的设置与以上你说的这些没有联系,你的是什么问题呢?

TA的精华主题

TA的得分主题

发表于 2003-12-3 18:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
vbe中设置工程属性,保护工程然后设置密码

TA的精华主题

TA的得分主题

发表于 2003-12-1 20:35 | 显示全部楼层
.Protect
.Unprotect
这两个方法分别是保护和取消保护工作表,这两个方法都有一个可以省略的password参数,就是密码
.Protect password:="你自己的密码"
.Unprotect password:="你自己的密码"
就可以了
第二个问题把代码放到workbook的beforesave事件就可以了
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    With ActiveSheet
        .Unprotect
        .Cells.Locked = False
        .UsedRange.Locked = True
        .EnableSelection = xlUnlockedCells
        .Protect
    End With
End Sub
另外上例中.Range(Cells(Target.Row + 1, 1), Cells(65536, 256)).Locked = False
这句是不必要的,因为仅仅需要保护已经用过的单元格,这是原来就你的问题遗留下来的,不好意思

TA的精华主题

TA的得分主题

发表于 2003-11-30 13:16 | 显示全部楼层
你把第2个表中的代码复制到任何一个sheet的代码模块中就可以用了,这段代码是通用的
其主要思路是:
Private Sub Worksheet_Activate()
    '工作表的激活事件是用来做初始化工作的,初始锁定已用区域,
    '设置工作表可选定区域为未锁定单元格,并保护工作表
    With ActiveSheet
        .Unprotect
        .Cells.Locked = False
        .UsedRange.Locked = True
        .EnableSelection = xlUnlockedCells
        .Protect
    End With
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    '防错处理
    On Error Resume Next
    With ActiveSheet
        '取消工作表保护,确保后续动作成功
        .Unprotect
        '锁定已用区域
        .UsedRange.Locked = True
        '取消当前编辑区域以下所有单元格锁定选项
        .Range(Cells(Target.Row + 1, 1), Cells(65536, 256)).Locked = False
        '保护工作表
        .Protect
    End With
End Sub

TA的精华主题

TA的得分主题

发表于 2003-11-29 20:50 | 显示全部楼层
FO1Bcmwy.rar (7.28 KB, 下载次数: 372)
内有比较详细的注释,你先看看是否合意

TA的精华主题

TA的得分主题

发表于 2003-11-29 15:16 | 显示全部楼层
blue你好,我已经很久没有见到你了。
这个问题不是很困难,但只能用VBA来解决,思路有两种,一是限制工作表的选择区域,动态更改,这种方法不用保护工作表,另外就是保护工作表,动态调整单元格的锁定属性,我单位就有这个例子,稍后我传文件上来

TA的精华主题

TA的得分主题

发表于 2003-12-23 18:56 | 显示全部楼层
lUSnIOCI.rar (11.15 KB, 下载次数: 73)
这次再看看,能不能用,为你增加了输入批注的功能
对不起,我不能随时上网,耽搁了你几天时间,有什么问题再问吧

TA的精华主题

TA的得分主题

发表于 2003-12-18 22:14 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
问题出现在把解开sheet保护的代码被注释了,删掉Unprotect前面的“'”
添加注释这是被保护工作表机制屏蔽掉的,无法帮你实现

TA的精华主题

TA的得分主题

发表于 2009-10-17 16:59 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
哈哈,学习学习拉
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 02:41 , Processed in 0.034178 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表