请把这代码修改一下,修改后既能保护非空单元格,也能保护含公式的单元格。 - 爱问答

(爱问答)

请把这代码修改一下,修改后既能保护非空单元格,也能保护含公式的单元格。

请把这代码修改一下,现在能保护不含公式的非空单元格,而公式保护不了,修改后既能保护非空单元格,也能保护含公式的单元格。

Sub 保护工作薄中所有非空单元格()

'关闭工作薄前保护所有工作表

IName = ActiveSheet.Name

For i = 1 To Sheets.Count

Sheets(i).Select'

If Application.CountA(Range("A:IV")) <> 0 Then '2003A:IV用2007以上定义列用A:XFD

ActiveSheet.Unprotect

Cells.Locked = False

Cells.FormulaHidden = False

Set rng = Cells.SpecialCells(xlCellTypeConstants, 23)

If Not rng Is Nothing Then

rng.Locked = True

End If

Set rng = Cells.SpecialCells(xlCellTypeConstants, 23)

If Not rng Is Nothing Then

rng.Locked = True

End If

ActiveSheet.Protect DrawingObjects:=True, contents:=True, Scenarios:=True

End If

Next i

Sheets(IName).Select

End Sub



Sub 保护工作薄中所有非空单元格()

Dim IName$, i%     '声明变量

IName = ActiveSheet.Name   '将当前激活的工作表名赋值于变量IName

For i = 1 To Sheets.Count  '在1到工作表总个数中循环,步长=1

Sheets(i).Select  '选择第i个工作表

If Application.CountA(Cells) <> 0 Then '工作表不是空白时,执行IF……End If语句

ActiveSheet.Unprotect   '撤销保护工作表

Cells.Locked = False    '整个工作表不锁定

Cells.FormulaHidden = False '整个工作表公式不隐藏

On Error Resume Next  '执行下面语句出现错误时,接着执行下一句

Cells.SpecialCells(xlCellTypeConstants, 23).Locked = True '锁定工作表中常量单元格

Cells.SpecialCells(xlCellTypeFormulas, 23).Locked = True '锁定工作表中公式单元格

Cells.SpecialCells(xlCellTypeFormulas, 23).FormulaHidden = True '隐藏工作表单元格中公式

ActiveSheet.Protect DrawingObjects:=True, contents:=True, Scenarios:=True '保护工作表

End If 'IF……End If语句结束

Next i 'For……Next语句结束

Sheets(IName).Select '返回保护工作表之前的工作表

End Sub


相关标签:公式

下一篇:tekla2018的环境如何应用到tekla2017中

上一篇:cs8如何使用图片控制fl播放

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?