首页 > 电脑

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

更新时间2018-04-20 04:46:39

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

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


相关标签:公式

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

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