Добрый день. Воткнулся, казалось бы, в простейший случай.
По нажатию на ячейку появляется форма, значение Textbox с этой формы должны записываться в строку активной ячейки, но на "n" ячеек правее. При следующем вызове этой формы, нужно проверить, если эта ячейка уже занята, нужно записать значение из Textbox на 5 ячеек правее. И так далее, каждый раз с шагом в 5 ячеек.
Dim st
St = 30
If Activecell(1, st).Value ="" Then
ActiveCell(1, st).Value = Textbox2.Value
Else
st = st + 5
End If
Можно попробовать такой способ, если в активной строке, справа от таблицы нет других данных.
В этом случае макрос может искать в активной строке последний заполненный столбец и относительно него вставит значение.
Именно с этого метода и начал, но проблема в том, что ещё правее могут быть данные. Может быть метод Offset(0, 5) может подойти, но пока не получается реализовать.
Sub Макрос()
Dim r As Long, c As Long
' Номер текущей строки.
r = ActiveCell.Row
' Поиск пустого столбца.
For c = 30 To Columns.Count Step 5
If Cells(r, c).Value = "" Then
Exit For
End If
Next c
' Запись значения из текстбокса в текущую строку, в пустой столбец.
Cells(r, c).Value = TextBox2.Value
End Sub
Спасибо, работает!