【发布时间】:2015-09-03 07:24:24
【问题描述】:
我使用 VBA 向一个单元格添加验证,该单元格依赖于另一个验证单元格。所有这些验证中的公式都有命名范围。 我尝试了什么:
-将值放在此验证所依赖的单元格中;
-放置值后重新计算书
-我调试所有代码,其中没有错误(错误仅出现在此代码中)
这是代码。
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
你知道为什么“On error goto NewStart”不起作用吗? 为什么当我按“F5”运行代码时它不起作用但当我调试代码时它起作用?
非常感谢您的回答。 我的英文不是很好。有错误请见谅。
【问题讨论】:
-
您需要使用
Resume来避免错误处理程序崩溃,因为它将处理您遇到的第一个错误,直到遇到Resume语句。一秒钟内查看答案。
标签: vba excel validation error-handling