2014-09-26 3 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 
Смежные вопросы