“如果错误结束,如果没有阻止”在我更新的代码

我有这段代码工作正常:

其目的是在B列中输出一个带有数据validation列表的新行。

Sub RICH() Dim ws As Worksheet Dim fnd As Range Dim fndstr As String ActiveSheet.Unprotect fndstr = "Targeted Premium Ads" Set ws = Worksheets("Inputsheet") Set fnd = ws.Columns(2).Find(What:=fndstr, After:=ws.Range("B11"), _ LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, _ SearchDirection:=xlNext, MatchCase:=False) If Not fnd Is Nothing Then Rows(fnd.Row - 1).Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Range("B" & fnd.Row - 2).Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=USD" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With End If End Sub 

然而,然后我累了添加一个数据validation列A单元格的新行,但我得到“块如果错误”:(

 Sub RICH() Dim ws As Worksheet Dim fnd As Range Dim fndstr As String ActiveSheet.Unprotect fndstr = "Targeted Premium Ads" Set ws = Worksheets("Inputsheet") Set fnd = ws.Columns(2).Find(What:=fndstr, After:=ws.Range("B11"), _ LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, _ SearchDirection:=xlNext, MatchCase:=False) If Not fnd Is Nothing Then Rows(fnd.Row - 1).Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Range("B" & fnd.Row - 2).Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=USD" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True Range("A" & fnd.Row - 2).Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=F6:F7" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With End If End Sub 

要么你需要结束你的第一个与声明或不开始第二个声明:

  With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=USD" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True END WITH Range("A" & fnd.Row - 2).Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=F6:F7" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With 

更改行… .Add添加types:= xlValidateList,AlertStyle:= xlValidAlertStop,运算符:= _ xlBetween,Formula1:=“USD”

小富()

  Dim ws As Worksheet Dim fnd As Range Dim fndstr As String ActiveSheet.Unprotect fndstr = "Targeted Premium Ads" Set ws = Worksheets("Inputsheet") Set fnd = ws.Columns(2).Find(What:=fndstr, After:=ws.Range("B11"), _ LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, _ SearchDirection:=xlNext, MatchCase:=False) If Not fnd Is Nothing Then Rows(fnd.Row - 1).Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Range("B" & fnd.Row - 2).Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="USD" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With End If End Sub