小弟我写的vb用command控件实现的扫雷,为什么最后一行会报错说越界?请给看看

我写的vb用command控件实现的扫雷,为什么最后一行会报错说越界?请各位高手给看看~
VB code

Private Sub Command1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
 Dim count2 As Integer
 Dim temp
 
 RowNum = Index / Row
 ColNum = Index Mod Col

 If Button = vbLeftButton Then                                                               '左击事件
  For count2 = 0 To CmdNum
    If Command1(Index).Tag = "1" Then                                                       '触雷行为
       temp = MsgBox("you are lost", vbOKOnly, "Game Over") = vbOK
       If temp = vbOKOnly Then
           Form1.Hide
           Form2.Show
        End If
    End
        
           
           
    Else:                    '计算周围有几个雷,并显示出来
     If Command1(Index).Caption <> "雷" Then       '只有不是标记为雷,才可以左击出数字
       If Index = ClickNum(0, 0) Then                   '左上角
       '   Command1(Index).Caption = Str$(Val(MineArea(ClickNum(RowNum + 1, ColNum))) _
                                       + Val(MineArea(ClickNum(RowNum, ColNum + 1))) _
                                       + Val(MineArea(ClickNum(RowNum + 1, ColNum + 1))) _
                                       )
        Command1(Index).Caption = Str$(Val(Command1(ClickNum(RowNum + 1, ColNum)).Tag) _
                                       + Val(Command1(ClickNum(RowNum, ColNum + 1)).Tag) _
                                       + Val(Command1(ClickNum(RowNum + 1, ColNum + 1)).Tag) _
                                       )
       End If

       If (Index = ClickNum(0, ColNum)) And (Index <> ClickNum(0, 0)) And (Index <> ClickNum(0, Col - 1)) Then '左侧非角区域
 '        Command1(Index).Caption = Str$(Val(MineArea(ClickNum(RowNum + 1, ColNum))) _
                                    + Val(MineArea(ClickNum(RowNum + 1, ColNum - 1))) _
                                    + Val(MineArea(ClickNum(RowNum + 1, ColNum + 1))) _
                                    + Val(MineArea(ClickNum(RowNum, ColNum + 1))) _
                                    + Val(MineArea(ClickNum(RowNum, ColNum - 1))) _
                                    )
          Command1(Index).Caption = Str$(Val(Command1(ClickNum(RowNum + 1, ColNum)).Tag) _
                                    + Val(Command1(ClickNum(RowNum + 1, ColNum - 1)).Tag) _
                                    + Val(Command1(ClickNum(RowNum + 1, ColNum + 1)).Tag) _
                                    + Val(Command1(ClickNum(RowNum, ColNum + 1)).Tag) _
                                    + Val(Command1(ClickNum(RowNum, ColNum - 1)).Tag) _
                                    )
       End If
    
       If (Index = ClickNum(RowNum, 0)) And (Index <> ClickNum(0, 0)) And (Index <> ClickNum(Row - 1, 0)) Then '上侧非角区域
 '       Command1(Index).Caption = Str$(Val(MineArea(ClickNum(RowNum + 1, ColNum))) _
                                    + Val(MineArea(ClickNum(RowNum + 1, ColNum + 1))) _
                                    + Val(MineArea(ClickNum(RowNum, ColNum + 1))) _
                                    + Val(MineArea(ClickNum(RowNum - 1, ColNum + 1))) _
                                    + Val(MineArea(ClickNum(RowNum - 1, ColNum))) _
                                    )
              Command1(Index).Caption = Str$(Val(Command1(ClickNum(RowNum + 1, ColNum)).Tag) _
                                    + Val(Command1(ClickNum(RowNum + 1, ColNum + 1)).Tag) _
                                    + Val(Command1(ClickNum(RowNum, ColNum + 1)).Tag) _
                                    + Val(Command1(ClickNum(RowNum - 1, ColNum + 1)).Tag) _
                                    + Val(Command1(ClickNum(RowNum - 1, ColNum)).Tag) _
                                    )
        End If
    
        If Index = ClickNum(0, Col - 1) Then                                                             '右上角
 '         Command1(Index).Caption = Str$(Val(MineArea(ClickNum(RowNum + 1, ColNum))) _
                                       + Val(MineArea(ClickNum(RowNum, ColNum - 1))) _
                                       + Val(MineArea(ClickNum(RowNum + 1, ColNum - 1))) _
                                       )
           Command1(Index).Caption = Str$(Val(Command1(ClickNum(RowNum + 1, ColNum)).Tag) _
                                       + Val(Command1(ClickNum(RowNum, ColNum - 1)).Tag) _
                                       + Val(Command1(ClickNum(RowNum + 1, ColNum - 1)).Tag) _
                                       )
        End If
    
        If Index = ClickNum(RowNum, Col - 1) And Index <> ClickNum(0, Col - 1) And Index <> ClickNum(Row - 1, Col - 1) Then '右侧非角区域
'        Command1(Index).Caption = Str$(Val(MineArea(ClickNum(RowNum + 1, ColNum - 1))) _
                                    + Val(MineArea(ClickNum(RowNum, ColNum - 1))) _
                                    + Val(MineArea(ClickNum(RowNum - 1, ColNum - 1))) _
                                    + Val(MineArea(ClickNum(RowNum - 1, ColNum))) _
                                    + Val(MineArea(ClickNum(RowNum + 1, ColNum))) _
                                    )
                Command1(Index).Caption = Str$(Val(Command1(ClickNum(RowNum + 1, ColNum - 1)).Tag) _
                                    + Val(Command1(ClickNum(RowNum, ColNum - 1)).Tag) _
                                    + Val(Command1(ClickNum(RowNum - 1, ColNum - 1)).Tag) _
                                    + Val(Command1(ClickNum(RowNum - 1, ColNum)).Tag) _
                                    + Val(Command1(ClickNum(RowNum + 1, ColNum)).Tag) _
                                    )
        End If
    
           If Index = 99 Then
        Print RowNum; ColNum; ClickNum(Row - 1, Col - 1)
         RowNum = RowNum - 1
                  Command1(Index).Caption = Str$(Val(Command1(ClickNum(RowNum - 1, ColNum)).Tag) _
                                       + Val(Command1(ClickNum(RowNum, ColNum - 1)).Tag) _
                                       + Val(Command1(ClickNum(RowNum - 1, ColNum - 1)).Tag) _
                                       )
        End If
     
        If (Index = ClickNum(Row - 1, ColNum)) And (Index <> ClickNum(Row - 1, 0)) And (Index <> ClickNum(Row - 1, Col - 1)) Then '下侧非角区域
        RowNum = RowNum - 1
                 Command1(Index).Caption = Str$(Val(Command1(ClickNum(RowNum - 1, ColNum - 1)).Tag) _
                                    + Val(Command1(ClickNum(RowNum + 1, ColNum)).Tag) _
                                    + Val(Command1(ClickNum(RowNum - 1, ColNum)).Tag) _
                                    + Val(Command1(ClickNum(RowNum - 1, ColNum + 1)).Tag) _
                                    + Val(Command1(ClickNum(RowNum - 1, ColNum)).Tag) _
                                    )
        End If
    
        If Index = ClickNum(Row - 1, 0) Then                                                     '左下角
           Command1(Index).Caption = Str$(Val(Command1(ClickNum(RowNum - 1, ColNum)).Tag) _
                                       + Val(Command1(ClickNum(RowNum, ColNum + 1)).Tag) _
                                       + Val(Command1(ClickNum(RowNum - 1, ColNum + 1)).Tag) _
                                       )
        End If
    
    
        If (RowNum <> 0) And (RowNum <> Row - 1) And (ColNum <> 0) And (ColNum <> Col - 1) Then   '非边缘区域
                       Command1(Index).Caption = Str$(Val(Command1(ClickNum(RowNum - 1, ColNum)).Tag) _
                                    + Val(Command1(ClickNum(RowNum + 1, ColNum)).Tag) _
                                    + Val(Command1(ClickNum(RowNum - 1, ColNum - 1)).Tag) _
                                    + Val(Command1(ClickNum(RowNum + 1, ColNum - 1)).Tag) _
                                    + Val(Command1(ClickNum(RowNum - 1, ColNum + 1)).Tag) _
                                    + Val(Command1(ClickNum(RowNum + 1, ColNum + 1)).Tag) _
                                    + Val(Command1(ClickNum(RowNum, ColNum + 1)).Tag) _
                                    + Val(Command1(ClickNum(RowNum, ColNum - 1)).Tag) _
                                   )
         End If
         
         
         
         
       End If
      End If
    Next count2
  End If
  
  
  If Button = vbRightButton Then                                                             '右击事件:标记为雷、?、没有标记,标记为雷则不可左击
      If Command1(Index).Caption = "" Then
            Command1(Index).Caption = "雷"
            FlagMine = FlagMine + 1
            Label2.Caption = Str$(MineNum - FlagMine)
        
      Else:
      
           If Command1(Index).Caption = "雷" Then
               Command1(Index).Caption = "?"
               FlagMine = FlagMine - 1
               Label2.Caption = Str$(MineNum - FlagMine)
       
           Else:
     
           If Command1(Index).Caption = "?" Then
                Command1(Index).Caption = ""
                Label2.Caption = Str$(MineNum - FlagMine)
           End If
      End If
    End If
   End If
  
  
  
      
End Sub
Private Sub Form_Load()

 Form1.Timer1.Enabled = False
 Form1.Label2.Caption = Str$(MineNum)
 FlagMine = 0
 Timer1.Interval = 1000
 
 Dim count As Integer
 For count = 0 To 99                 '按钮清零
    Form1.Command1(count).Caption = ""  '清除所有雷
    Form1.Command1(count).Enabled = False '等待计时开始时开始能用
    MineArea(count) = False
 Next count
 
 Mine_begin
 
End Sub