2016-07-26 2 views
1

У меня есть макрос VBA для копирования двух листов (один из форм для сбора данных, один лист с партией поиска для раскрывающихся меню) из основного книгу, заполнить новую книгу и сохранить ее.Настройка выпадающего списка с помощью VBA в Excel

Поскольку списки проверки данных выпадающего списка обновляют свои ссылки при копировании листа, я должен сбросить проверку, чтобы ссылаться на новый лист Lookups. На данный момент я пытаюсь это (с различными координатами, конечно):

With wsNew.Cells(19, 5) ' Display on web schedule 
    .Value = wsData.Cells(11, iColCount).Value 
    .Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=Lookups!$B$2:$B$3" 
    .Validation.IgnoreBlank = True 
    .Validation.InCellDropdown = True 
End With 

Как только он попадает в .Validation.Add Type... линии, он порывает с 1004 ("ошибка в заявке или объекта, определенные ") ошибка.

Если есть какой-либо способ скопировать лист без его автоматического обновления валидации данных, это было бы идеальным, но если этого не произошло, кто-нибудь знает, что вызывает разрыв этого кода и как его исправить?

ответ

1

Удалите все предыдущие проверки данных, прежде чем пытаться создать новый.

With wsNew.Cells(19, 5) ' Display on web schedule 
    .Value = wsData.Cells(11, iColCount).Value 
    .Validation.DELETE 
    .Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=Lookups!$B$2:$B$3" 
    .Validation.IgnoreBlank = True 
    .Validation.InCellDropdown = True 
End With 
+0

Великолепно! Это сделали трюки - спасибо! –

Смежные вопросы