Я использую VBA для добавления проверки в ячейку, которая зависит от другой ячейки, где есть еще одна проверка. Формула во всей этой проверке назвала диапазоны. То, что я пробовал:Range.Validation method occure 1004 error
-place значения в ячейке, которые зависят от этой валидации;
-recalculate книги после размещения значения от
-i отладить весь код и нет никаких ошибок в нем (ошибка происходит только в этом коде)
Вот код.
Public Sub MakeValidation(ByVal ValidString As String, ByVal ValidAddress As String, ByVal ValidSheet As String, ByRef WB As Workbook)
Dim n As Long
NewStart:
Err.Clear
n = n + 1
If n = 10 Then Exit Sub
On Error GoTo NewStart
WB.Worksheets(ValidSheet).Range(ValidAddress).Validation.Delete
Debug.Print "'" & Err.Number; "'" & " " & Err.Description
On Error GoTo NewStart
If CheckValidation(ValidAddress, ValidSheet, WB) = True Then
WB.Worksheets(ValidSheet).Range(ValidAddress).Validation.Delete
End If
WB.Worksheets(ValidSheet).Range(ValidAddress).Validation.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, _
Formula1:=ValidString
End Sub
У U какие-либо идеи, почему "On Error GoTo Newstart" не работает? И почему, когда я запускаю код, нажав «F5», он не работает, но когда я отлаживаю код, он работает?
Большое спасибо за ваш ответ. Мой английский не очень хороший. Извините за ошибки.
Вам нужно будет использовать «Возобновить», чтобы избежать сбоя обработчика ошибок, поскольку он будет обрабатывать первую ошибку, с которой вы сталкиваетесь, до тех пор, пока она не встретится с инструкцией 'Resume'. См. Ответ в секундах. – R3uK