2014-09-26 72 views
0

我有一个受保护的工作表,但单元格B12:B27没有锁定。此代码不适用于锁定的工作表。任何想法?。VBA-数据验证错误

If Not Application.Intersect(Target, Range("B12:B37")) Is Nothing Then 
    With Range("B" & ActiveCell.Row).Validation 
     .Delete 
     .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ 
     xlBetween, Formula1:="B,E,R,TG,TU,V" 
    End With 
End If 

感谢

回答

2

在保护您必须允许删除行或删除列选项表。删除单个单元格不是一种选择,因为它可能会影响锁定的单元格。

.Delete命令将完全移除单元格,这意味着下面或右边的现有单元格将分别需要向上或向左移动。如果这是您想要执行的操作,则需要先取消保护工作表。

ActiveSheet.Unprotect 
' your code 
ActiveSheet.Protect 

如果你只是想清除单元格的内容,你可以使用

.ClearContents