Могу ли я получить запись всех данных, которые были в ячейке в Excel (в выбранное мной время) - PullRequest
0 голосов
/ 10 марта 2019

Я программирую игру в шахматы, и я подумал, что было бы здорово, если бы пользователь мог посмотреть игру после того, как она произошла, или даже войти в собственную игру.моя шахматная игра работает так, что есть две ячейки: одна, где пользователь вводит квадрат фигуры, которую он хочет переместить, и другая, где пользователь входит туда, куда он хочет, чтобы фигура была перемещена.Я подумал, что, возможно, если бы я мог видеть историю ячейки, я мог бы запустить программу, которая делает ходы, не проверяя, являются ли они законными (потому что он не смог бы их воспроизвести, если бы они не были).Есть ли способ проверить историю клетки?или хотя бы как-то сохранить и удалить при запуске новой игры?

Ответы [ 2 ]

1 голос
/ 10 марта 2019

Йони, вы можете использовать Collection в выражении Static . Это означает, что в жизни вашего Приложения, и код не останавливается (отлаживается, затем останавливается у вас вручную), вы можете хранить информацию о том количестве памяти, которое вы хотите использовать ( переменной длины использует 10 байт + 1 * Лен (строка) на байт - ничего безумного для вашей цели).

Приведенный ниже код записывает адрес Activecell каждый раз, когда вы активируете другую ячейку:

Option Explicit

Private Sub WorkSheet_SelectionChange(ByVal Target As Range)

    Static addresses As New Collection

    addresses.Add ActiveCell.Address

End Sub
0 голосов
/ 10 марта 2019

Как то так?

enter image description here

Option Explicit

Private isRunning As Boolean
Private moves As New Collection

Private Sub start_button_Click()
    isRunning = True
End Sub

Private 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

Private Sub Worksheet_Change(ByVal Target As Range)

    If isRunning Then
        moves.Add Target.Address & " " & Target.Value
    End If

End Sub

Тогда я написал в следующих клетках:

enter image description here

Который дал следующий результат:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...