解决Excel工作簿中的单元解锁问题

时间:2014-05-08 20:50:09

标签: excel excel-vba vba

以下代码位于“ThisWorkBook”模块中,但是在解锁特定单元格时遇到问题。我无法编辑以下范围内的单元格。

Sheets("Sheet1").Protect Password:="Password01", UserInterFaceOnly:=True, AllowSorting:=True, AllowFiltering:=True
Worksheets("Sheet1").Range("C6:C5000").Locked = False
Worksheets("Sheet1").Range("E6:E5000").Locked = False
Worksheets("Sheet1").Range("G6:G5000").Locked = False
Worksheets("Sheet1").Range("I6:I5000").Locked = False
Worksheets("Sheet1").Range("K6:K5000").Locked = False
Worksheets("Sheet1").Range("M6:M5000").Locked = False
Worksheets("Sheet1").Range("O6:O5000").Locked = False

1 个答案:

答案 0 :(得分:1)

如果工作表未受保护,您只能更改锁定单元格的属性(包括锁定标志)。您的代码首先保护工作表,然后尝试更改单元格。

试试这个:

Sheets("Sheet1").Unprotect Password:="Password01" ' unprotect, so you can make changes
Worksheets("Sheet1").Range("C6:C5000").Locked = False
Worksheets("Sheet1").Range("E6:E5000").Locked = False
Worksheets("Sheet1").Range("G6:G5000").Locked = False
Worksheets("Sheet1").Range("I6:I5000").Locked = False
Worksheets("Sheet1").Range("K6:K5000").Locked = False
Worksheets("Sheet1").Range("M6:M5000").Locked = False
Worksheets("Sheet1").Range("O6:O5000").Locked = False
' protect after changes have been made
Sheets("Sheet1").Protect Password:="Password01", UserInterFaceOnly:=True, AllowSorting:=True, AllowFiltering:=True