Запись значения textbox в каждый последующий столбец

Автор Посетитель, 31 марта 2023, 13:13

Посетитель

Добрый день. Воткнулся, казалось бы, в простейший случай.
По нажатию на ячейку появляется форма, значение 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

Посетитель