Option Explicit Dim ptr As Long Dim dat(0 To 68) As Long Sub 宏1() Dim i As Long, j As Long If ptr = 0 Then Range("a1:m13").ClearContents Range("a1:m13").HorizontalAlignment = xlCenter Range("a1:m13").ClearContents For i = 1 To 13 For j = 1 To 13 If i = 1 Or i = j Or i + j = 14 Or i = 13 Or j = 1 Or j = 13 Then dat(ptr) = i * 16 + j ptr = ptr + 1 End If Next j Next i ptr = 0 End If If ptr <= UBound(dat) Then i = dat(ptr) \ 16 j = dat(ptr) Mod 16 ptr = ptr + 1 Cells(i, j) = "●" DoEvents Application.OnTime Now() + 1 / 24 / 3600, "宏1" End If End Sub