我建立了一个Excel国际象棋游戏,并希望记录玩家通过事件做出的动作。这是我的代码:
Dim isRunning As Boolean
Dim moves As New Collection
Sub start_button_Click()
isRunning = True
End Sub
Sub stop_button_Click()
isRunning = False
Dim val As Variant
For Each val In moves
Debug.Print val
Next val
Set moves = Nothing
End Sub
Sub Worksheet_Change(ByVal Target As Range)
If isRunning Then
moves.Add Target.Address & " " & Target.Value
End If
End Sub
由于某种原因,每当我运行start方法或stop方法时,都会出现错误:
“期望:表达式”
没有突出显示代码的任何行,有时当我运行stop方法时,它会给出错误并突出显示声明为空的行For Each val In moves
。
该代码可在空白/新的Excel文件上运行,但不适用于我的国际象棋程序。
答案 0 :(得分:3)
一旦这种情况发生在“停止”方法中:
Set moves = Nothing
然后,您必须先为moves.Add
分配新的集合,然后才能再调用moves
尝试此更改:
Sub start_button_Click()
Set moves = New Collection
isRunning = True
End Sub