Здравствуйте!
Имеется форма, по средствам которой в таблицу заносятся данные.
Для перенесения данных из формы используется следующее выражение:
ActiveCell.EntireRow.Cells(1)=TextBox30 '1-й столбец
ActiveCell.EntireRow.Cells(2)=ComboBox18 '2-й
ActiveCell.EntireRow.Cells(3)=TextBox7 '3-й
...
ActiveCell.EntireRow.Cells(120)=TextBox95 '120-й
Каким образом в случае вставки в таблицу нового столбца (к примеру "А") возможно внести соответствующие изменения в выражениях (к примеру ActiveCell.EntireRow.Cells(1) заменить на ActiveCell.EntireRow.Cells(2), ActiveCell.EntireRow.Cells(2) заменить на ActiveCell.EntireRow.Cells(3) и т.д.)
Такой вариант. Нужно определять номер столбца по заголовку столбца. То есть нужно усложнить код. Нужно добавить в код поиск нужного заголовка столбца:
Sub Main()
ActiveCell.EntireRow.Cells(fColIndex("Заголовок столбца 1")).Value = TextBox30
ActiveCell.EntireRow.Cells(fColIndex("Заголовок столбца 2")).Value = ComboBox18
End Sub
Private Function fColIndex(sHeader As String) As Long
' В Rows нужно указать номер строки, в которй находится шапка таблицы.
fColIndex = Rows(1).Find(What:=sHeader, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Column
End Function