В настоящее время возится с макросами в Excel. Тот, который генерирует диапазон, который заполняет 3 столбца клеток 1-9. Другой, который строит эти числа как боевой корабль с x, y и v для значения.
Я получил работающую часть генерации чисел, и я застрял в бите отрисовки.
В настоящее время проблема заключается в том, что я получаю ошибку «13», что означает, что мои переменные не совпадают. Но я использую CInt
для преобразования варианта в int
. При отладке кажется, что for l oop получает все значения правильно, но не конвертирует.
Вот код, который у меня есть, и скриншот всего этого.
Sub random()
Dim MyRange As Range
Dim c As Integer, r As Integer
Set MyRange = Workbooks("test random gen").Sheets("Sheet1").Range("G16:I30")
For c = 1 To MyRange.Columns.Count
For r = 1 To MyRange.Rows.Count
Randomize
MyRange.Cells(r, c) = Int((9 - 1 + 1) * Rnd + 1)
Next r
Next c
End Sub
Sub Button6_Click()
Dim Board As Range
Dim Table As Range
Dim c As Integer, r As Integer
Dim Xboard As Integer, Yboard As Integer, Vboard As Integer
Dim Xboardv As Variant, Yboardv As Variant, Vboardv As Variant
Set Table = Workbooks("test random gen").Sheets("Sheet1").Range("G16:G30")
Set Board = Workbooks("test random gen").Sheets("Sheet1").Range("M16:U24")
For r = 1 To Table.Rows.Count
Xboardv = Table.Cells.Value
Yboardv = Table.Cells.Offset(columnOffset:=1).Value
Vboardv = Table.Cells.Offset(columnOffset:=2).Value
Xboard = CInt(Xboardv)
Yboard = CInt(Yboardv)
Vboard = CInt(Vboardv)
Board.Cells(Xboard, Yboard).Value = (Vboard)
Next r
End Sub