使单元格只读

时间:2016-02-22 07:12:01

标签: excel vba excel-vba

此代码使整张表格只读。

我想将只有空的单元格(保持空值)设为只读。它应该适用于不同的Excel文件,其中使用的单元格范围可能不同。

Sub proFirst()
Sheets("DCAFTE").UsedRange.Select

ActiveSheet.Unprotect
ActiveWorkbook.Unprotect

Dim myRange As Range
Set myRange = ActiveSheet.UsedRange
myRange.Select
Selection.Locked = True
ActiveSheet.Protect Contents:=True
End Sub

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码替换您的代码。这将仅选择空的单元格(空白)并使其为只读。具有值的单元格将是可编辑的。

Sub proFirst()
Sheets("DCAFTE").Select

ActiveSheet.Unprotect
ActiveWorkbook.Unprotect

    Dim myCell As Range

    Set myCell = Selection
    Cells.Select
    Selection.Locked = False
    myCell.Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.Locked = True
    ActiveSheet.Protect Contents:=True
    myCell.Select

End Sub