求EXCEL VBA代码。单元格输入内容保存后自动锁定有内容单元格。下次打开后不可编辑。

 我来答
万年金刚钻
推荐于2016-03-28 · TA获得超过1.6万个赞
知道大有可为答主
回答量:1.1万
采纳率:0%
帮助的人:3513万
展开全部

在beforesave事件中遍历usedRange,把每个formula不为空的单元格加锁

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim sht As Worksheet, rC As Range
For Each sht In Sheets
    sht.Unprotect
    With sht
        For Each rC In .UsedRange
            If rC.FormulaLocal <> "" Then
                rC.Locked = True
            Else
                rC.Locked = False
            End If
        Next
    End With
    sht.Protect
Next
End Sub


附件可参考

追问

我设置共享后就不行了

追答
是的,共享工作簿,意味着,你在打开这个文件的时候,有可能其他用户也打开了该工作簿。如果这时执行unprotect方法,文件的变化会传送到已经打开该工作簿的人那边,那就会产生未知的安全问题,所以安全逻辑决定了,工作簿被共享时,不能Unprotect。
可爱就是笑
2015-04-15 · TA获得超过1599个赞
知道大有可为答主
回答量:4011
采纳率:70%
帮助的人:628万
展开全部
这个需要代码
思路:
打开事件,将无内容单元格设置为不锁定

关闭事件,退出保存前将有内容单元格设置为锁定

其实,很简单吧
更多追问追答
追问
If .Value  "" Then
PW = InputBox("修改内容请输入密码:")
If PW "0715" Then

这段代码。加个条件限定。保存后才锁定。

求代码
追答
[保存] 也是一个激活事件,需要单独在那个事件中写代码
你不是要[下次打开][才不能编辑]吗?请将具体要求说明一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Wesen00
2015-04-15 · TA获得超过489个赞
知道小有建树答主
回答量:1507
采纳率:57%
帮助的人:433万
展开全部
保护工作簿或者工作表即可,不需VBA
追问
共享给别人编辑表格。但是我不希望保存后又更改。
追答
可以设置保留修订记录
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式