чтобы улучшить свои навыки, я сейчас создаю файл, который должен отслеживать игру в дартс.Пользователи записывают свои броски в ячейку и добавляют это значение в таблицу.
Большая часть этого уже работает, но логика смены игроков еще не работает.
У меня есть следующий фрагмент кода для игроков:
Dim PlayerID As Object
Set PlayerID = CreateObject("Scripting.Dictionary")
For i = 1 To 3
PlayerID(i) = Setupws.Range("C" & i)
PlayerID(i) = Setupws.Range("C" & i).Value
Next i
Set GameTable = Gamews.ListObjects("GameTable")
Set NewRow = GameTable.ListRows.Add(AlwaysInsert:=True)
Lastrow = Gamews.Cells(Rows.Count, "A").End(xlUp).Row
Beforerow = Gamews.Cells(Rows.Count, "A").End(xlUp).Row - 1
With GameTable
If .Range(Beforerow, 5).Value = 3 And .Range(Beforerow, 9).Value = 3 Then
.Range(Lastrow, 3).Value = PlayerID.Value
Else
.Range(Lastrow, 3).Value = .Range(Beforerow, 3).Value
End If
Логика заключается в том, что если значение в столбце 5 равно 3 (оно циклически изменяется от 1 до3) следующий идентификатор игрока добавляется в таблицу.
В основном:
PlayerID (1) Бросок 1
PlayerID (1) Бросок 2
PlayerID (1) Бросок 3
PlayerID (2) Бросок 1
и т. Д.
Я получаю ошибку во время выполнения 438 ...
Здесь происходит ошибка:
.Range(Lastrow, 3).Value = PlayerID.Value
Есть идеи?Я не добавил остальную часть кода, в котором я определяю листы и другие переменные, к своему сообщению, но могу опубликовать его, если это поможет.
BR Thomas