решение -
Опция Явная частная вложенная рабочая таблица_Change (целевое значение ByVal в качестве диапазона)
Приглушить ключевые ячейки в качестве заданного диапазона KeyCells = Range ("H: H") If (Target.Value < > "") И (IsNumeri c (Target.Value)) И (Target.Value> 0) И ((Target.HasFormula) = False) Тогда
Если не Application.Intersect (KeyCells, Range (Target.Address)) Ничего, тогда затемните X как целочисленные листы ("sheet2"). Активируйте для X = Sheets ("sheet2"). Range ("G100"). End (xlUp) .Row To Sheets ("sheet2") ) .Range ("G100"). End (xlUp) .Row + Target.Value - 1 Sheets ("sheet2"). Range ("B" & X + 1) .Value = Sheets ("sheet1"). Range ( Листы "B" & Target.Row) ("sheet2"). Диапазон ("C" & X + 1). Значение = Sheets ("sheet1"). Диапазон ("C" & Target.Row) листов ("sheet2"). Range ("D" & X + 1) .Value = Sheets ("sheet1"). Range ("D" & Target.Row) Sheets ("sheet2"). Range ("E" & X + 1) .Value = Sheets ("sheet1"). Range ("E" & Target.Row)
Sheets ("sheet2"). Range ("G" & X + 1) .Value = " Введите серийный номер "Next X 'MsgBox Target.Address MsgBox" do ne "& X Else End If Else MsgBox" Неверное значение! Вы должны ввести число больше 0 "End If End Sub
, но теперь как я могу обновить строки в sheet2, если пользователь изменит значение в Range1 Range (" H: H "), мне нужен способ вставить новые строки, если пользователь ввел большее значение, чем первое, которое он ввел, или мне нужен способ удалить дополнительные строки, если пользователь ввел меньшее значение, чем первое, которое он ввел.