Range("C4").Select
Application.CutCopyMode = False
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Materials"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Я пытаюсь скомпилировать проверку данных в одну ячейку с помощью макроса. Так что, когда вы выберете материал, график автоматически изменится. Материалы в коде - это диапазон проверки данных, я назвал диапазон, надеющийся на устранение ошибки.Macro дает ошибку без причины при создании падающей проверки данных?
Таким образом, основная проблема заключается в том, что во время работы макроса он дает «Ошибка времени выполнения 1004». Если я отлаживаю и помещаю свой желтый курсор на несколько шагов назад и иду с f8, он отлично работает. Я беру этот код из макроса записи. Код кажется правильным, но я не знаю, почему макрос дает ошибку.
Удалить строку 'Диапазон (« C4 »). Выберите' и замените' With Selection.Validation' на 'With ThisWorkbook.Sheets (« Sheet1 »). Диапазон (« C4 ») .Validation' Также измените «Sheet1» на соответствующее имя листа и повторите попытку –
И, наконец, см. [Как избежать использования Select в Excel VBA macros] (http://stackoverflow.com/questions/10714251/how-to-avoid- using-select-in-excel-vba-macros) :) –
К сожалению, не сработало :(Я знаю, что есть много способов избежать выбора, но избегать его не решает проблемы все время. Если вы знаете, как правильно его использовать , он будет работать без проблем. У меня есть 1 месяц работы с макросом, используя много выбора и активации, никаких проблем. В вашем решении он не распознает эту рабочую книгу, так как она работает на модуле. Несмотря на то, что я удалил ее, программа всегда дает ошибку на .Add Тип: = xlValidateList, AlertStyle: = xlValidAlertStop, Operator: = _ xlBetween, Formula1: = "= Материалы" код. Спасибо за помощь в любом случае! – hakandeep