在我的代码

时间:2015-12-06 08:46:57

标签: excel

我想在一个范围内的每个单元格中使用值,在一个电子表格中搜索另一个电子表格中的该值单元格。

但是,如果遇到与单元格“I3”匹配的值的单元格,那么我希望宏跳过它并继续到下一个单元格。

Dim rng As Range, cell As Variant

Sheets("Main").Select
Set rng = Range("D3:D5")

For Each cell In rng

If cell = Range("I3") Then Stop

Else
    Sheets("Filtered").Select
    Cells.Find(What:=cell, After:=ActiveCell).Activate
    ActiveCell.EntireRow.Select
    Selection.Delete Shift:=xlUp

Next cell


End Sub

1 个答案:

答案 0 :(得分:0)

问题在于行

If cell = Range("I3") Then Stop

是一个正确的单行if语句,后面有一个空行,所以

Else

成为新的声明。

您应该根据多行语法更改代码:

If condition [ Then ]
    [ statements ]
[ ElseIf elseifcondition [ Then ]
    [ elseifstatements ] ]
[ Else
    [ elsestatements ] ]
End If

我的意思是,将“停止”放在下一行,并在“Else”块之后添加“End If”。

有关更多语法详细信息,请参阅https://msdn.microsoft.com/ru-ru/library/752y8abs.aspx?f=255&MSPPError=-2147217396