Всем добра! Уверен что даже для начинающих такой код будет простейшим но мои познания в VBA еще меньше (((
Имеется "журнал регистрации", постоянно растущий вниз мере заполнения новых строк (событий). Задача следующая: при изменении значения в диапазоне столбцов А:P все атрибуты форматов ячейки в которой были введены любые значения - были бы назначены аналогично из ячейки строкой выше. Пример - вводим какое угодно значение в ячейку F654 и после ЕNТЕR или ctrl+V в эту ячейку - она должна получить тот же формат что и в F653 Исключением должны быть первая и вторая строки листа а так же это правило должно работать если "протягивать" вниз.
Всем добра! Уверен что даже для начинающих такой код будет простейшим но мои познания в VBA еще меньше (((
Имеется "журнал регистрации", постоянно растущий вниз мере заполнения новых строк (событий). Задача следующая: при изменении значения в диапазоне столбцов А:P все атрибуты форматов ячейки в которой были введены любые значения - были бы назначены аналогично из ячейки строкой выше. Пример - вводим какое угодно значение в ячейку F654 и после ЕNТЕR или ctrl+V в эту ячейку - она должна получить тот же формат что и в F653 Исключением должны быть первая и вторая строки листа а так же это правило должно работать если "протягивать" вниз.Литр
Сообщение отредактировал Литр - Пятница, 08.05.2026, 13:43
при изменении значения в диапазоне столбцов А:P все атрибуты форматов ячейки в которой были введены любые значения - были бы назначены аналогично из ячейки строкой выше.
Пробуйте и дайте знать. Удачи.
Литр, Вечер добрый (а может быть и день или утро). Возможно я вас не правильно понял, но всё же пробуйте следуйщий код: [vba]
Код
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range) Dim a As Range Dim r As Long
On Error GoTo ExitHandler
Dim rng As Range Set rng = Intersect(Target, Me.Range("A:P")) If rng Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each a In rng.Areas
For r = Application.Max(3, a.Row) To a.Row + a.Rows.Count - 1 Me.Range( _ Me.Cells(r - 1, a.Column), _ Me.Cells(r - 1, a.Column + a.Columns.Count - 1) _ ).Copy
Me.Cells(r, a.Column).PasteSpecial xlPasteFormats Next r
Next a
ExitHandler:
Application.CutCopyMode = False Application.EnableEvents = True End Sub
[/vba]Данный код поместите в модуль листа где вы хотите
при изменении значения в диапазоне столбцов А:P все атрибуты форматов ячейки в которой были введены любые значения - были бы назначены аналогично из ячейки строкой выше.