Доброго времени. Подскажите (или помогите), можно ли в Excel 2003 сделать что бы: при вводе значений таблица (заданные столбцы) сползала бы вниз, освобождая ячейки для нового ввода данных.
Доброго времени. Подскажите (или помогите), можно ли в Excel 2003 сделать что бы: при вводе значений таблица (заданные столбцы) сползала бы вниз, освобождая ячейки для нового ввода данных.Gold_Barsik
ёxcel 2003 Без макроса такого не сможет. Можно 2007 или старше. Они поддерживают талицы, которые сами расползаются при вставке новых данных, копируя при этом формулы в новые строки. Однако автоматическую реакцию на
Цитата
после ввода "показатель"
всеравно делать макросом.
ёxcel 2003 Без макроса такого не сможет. Можно 2007 или старше. Они поддерживают талицы, которые сами расползаются при вставке новых данных, копируя при этом формулы в новые строки. Однако автоматическую реакцию на
Private Sub Worksheet_Change(ByVal Target As Range) If Range("$Q$9") = "" Then Exit Sub If "$Q$9" = Target.Address Then Application.EnableEvents = False Range("T4:BI4").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow Application.EnableEvents = True End If End Sub
[/vba] Здесь: "$Q$9" - адрес ячейки, на изменение которой нужно реагировать (знак доллара - $ - перед номерами столба и строки обязателен). "T4:BI4" - адрес диапазона ячеек, которые сдвигаются вниз
Положите это в модуль "Лист1".
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Range("$Q$9") = "" Then Exit Sub If "$Q$9" = Target.Address Then Application.EnableEvents = False Range("T4:BI4").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow Application.EnableEvents = True End If End Sub
[/vba] Здесь: "$Q$9" - адрес ячейки, на изменение которой нужно реагировать (знак доллара - $ - перед номерами столба и строки обязателен). "T4:BI4" - адрес диапазона ячеек, которые сдвигаются внизCaramelManiac
Сообщение отредактировал CaramelManiac - Четверг, 05.11.2020, 12:55
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MutableCell As String ' Адрес ячейки, на изменение которой нужно реагировать. Dim ShiftRange As String ' Диапазон ячеек, которые сдвигаются вниз.
MutableCell = "$Q$9" ' измените на свой адрес ячейки (знак доллара - $ - перед номерами столба и строки обязателен) ShiftRange = "T4:BI4" ' измените на свой диапазон
If Range(MutableCell) = "" Then Exit Sub If MutableCell = Target.Address Then Application.EnableEvents = False Range(ShiftRange).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow Application.EnableEvents = True End If End Sub
[/vba]
Для более легкой адаптации кода здесь введены переменные: MutableCell и ShiftRange. Если формат таблицы изменится или ваш "показатель" переедет в другую ячейку, достаточно просто изменить эти переменные.
Или вот так
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MutableCell As String ' Адрес ячейки, на изменение которой нужно реагировать. Dim ShiftRange As String ' Диапазон ячеек, которые сдвигаются вниз.
MutableCell = "$Q$9" ' измените на свой адрес ячейки (знак доллара - $ - перед номерами столба и строки обязателен) ShiftRange = "T4:BI4" ' измените на свой диапазон
If Range(MutableCell) = "" Then Exit Sub If MutableCell = Target.Address Then Application.EnableEvents = False Range(ShiftRange).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow Application.EnableEvents = True End If End Sub
[/vba]
Для более легкой адаптации кода здесь введены переменные: MutableCell и ShiftRange. Если формат таблицы изменится или ваш "показатель" переедет в другую ячейку, достаточно просто изменить эти переменные.CaramelManiac
Сообщение отредактировал CaramelManiac - Четверг, 05.11.2020, 13:16