如果声明范围内的特定值不能正常工作?

时间:2019-04-16 12:34:43

标签: excel vba

这是我的代码:

    For Each cell In Range("A1:A13")
    If cell.Value = "Totals" Then

    Else
        Sheets(1).Range("A2:G4").Select
        Selection.Copy
        wb2.Activate
        Sheets(1).Range("A2").Select
        ActiveSheet.Paste
    End If
Next cell

我希望它在Then之后什么也不做,但是即使它找到单词'Totals',它仍然会在Else之后运行代码。我想要的是,如果“总计”一词在该范围内,则什么也不做。

1 个答案:

答案 0 :(得分:3)

与其在循环内进行复制粘贴并冒险运行13次,不如设置一次标志(如果找到“总计”)并在循环后运行代码一次,如下所示:

Dim found as Boolean

For Each cell In Range("A1:A13")
    If cell.Value = "Totals" Then found = True
Next cell

If Not found then
    Sheets(1).Range("A2:G4").Select
    Selection.Copy
    wb2.Activate
    Sheets(1).Range("A2").Select
    ActiveSheet.Paste
End If

并且请查看this answer来摆脱SelectActivate,因为它容易出错。