结束IF不在范围内

时间:2015-01-21 13:19:12

标签: excel vba

我正在用MS Excel创建一个游戏,如果它超出我的范围,我需要停止此操作,这是我的游戏桌名为“table16x16”。程序是如果你运行游戏并点击隐藏的空白单元格然后程序以所有8种方式查找非空白单元格(直到找到),然后全部显示它们(我希望它很清楚)。 Aniway,当我点击一个周围没有填充单元格的时候,它会离开桌面搜索任何填充单元格并从表格中填充颜色直到页面结束(向上并向左移动直到结束)。我希望它以我的“table16x16”结束并停止向外看。愿任何人帮助我并告诉我该怎么做?

我的代码:

Sub ClearTheCells(myCell As Range)
    myCell.Font.Color = RGB(153, 204, 255)
    myCell.Interior.Color = RGB(153, 204, 255)
    myCell.Value = "."

    If myCell.Offset(-1, -1) = "" Then
        ClearTheCells myCell.Offset(-1, -1)
    End If

    If myCell.Offset(0, -1) = "" Then
        ClearTheCells myCell.Offset(0, -1)
    End If

    If myCell.Offset(1, -1) = "" Then
        ClearTheCells myCell.Offset(1, -1)
    End If

    If myCell.Offset(-1, -0) = "" Then
        ClearTheCells myCell.Offset(-1, 0)
    End If

    If myCell.Offset(1, 0) = "" Then
        ClearTheCells myCell.Offset(1, 0)
    End If

    If myCell.Offset(-1, 1) = "" Then
        ClearTheCells myCell.Offset(-1, 1)
    End If

    If myCell.Offset(1, 1) = "" Then
        ClearTheCells myCell.Offset(1, 1)
    End If

    If myCell.Offset(0, 1) = "" Then
        ClearTheCells myCell.Offset(0, 1)
    End If

    If IsNumeric(myCell.Offset(-1, -1)) Then
        myCell.Offset(-1, -1).Font.Color = vbBlack
        myCell.Offset(-1, -1).Interior.Color = RGB(153, 204, 255)
    End If

    If IsNumeric(myCell.Offset(0, -1)) Then
        myCell.Offset(0, -1).Font.Color = vbBlack
        myCell.Offset(0, -1).Interior.Color = RGB(153, 204, 255)
    End If

    If IsNumeric(myCell.Offset(1, -1)) Then
        myCell.Offset(1, -1).Font.Color = vbBlack
        myCell.Offset(1, -1).Interior.Color = RGB(153, 204, 255)
    End If

    If IsNumeric(myCell.Offset(-1, 0)) Then
        myCell.Offset(-1, 0).Font.Color = vbBlack
        myCell.Offset(-1, 0).Interior.Color = RGB(153, 204, 255)
    End If

    If IsNumeric(myCell.Offset(-1, 1)) Then
        myCell.Offset(-1, 1).Font.Color = vbBlack
        myCell.Offset(-1, 1).Interior.Color = RGB(153, 204, 255)
    End If

    If IsNumeric(myCell.Offset(1, 1)) Then
        myCell.Offset(1, 1).Font.Color = vbBlack
        myCell.Offset(1, 1).Interior.Color = RGB(153, 204, 255)
    End If

    If IsNumeric(myCell.Offset(0, 1)) Then
        myCell.Offset(0, 1).Font.Color = vbBlack
        myCell.Offset(0, 1).Interior.Color = RGB(153, 204, 255)
    End If

    If IsNumeric(myCell.Offset(1, 0)) Then
        myCell.Offset(1, 0).Font.Color = vbBlack
        myCell.Offset(1, 0).Interior.Color = RGB(153, 204, 255)
    End If
End Sub

1 个答案:

答案 0 :(得分:0)

我不确定我是否了解您的游戏,但我认为Intersect方法可以帮助您解决问题。我只是展示了它如何在下面工作的一个例子。尝试修改它以满足您的要求。

在下面的示例中,我设置了myCell = 11。接下来,我检查myCell是否在我定义为单元格A1:C10的范围内。如果没有,它会给出错误消息。否则,它会给出成功的消息

Dim myCell As Range

Set myCell = Range("A11")

If Intersect(myCell, Range("A1:C10")) Is Nothing Then
    MsgBox ("YOU CLICKED OUTSIDE THE TABLE")
Else
    MsgBox ("ALL GOOD")
End If