Макрос на заполнение ячеек - VBA
Формулировка задачи:
Добрый день, фоурмчане! Необходима ваша неоценимая помощь и подсказ, как разобраться с заданием: "В произвольные клетки текущего листа введены натуральные числа. При двойном щелчке по любой заполненной клетке происходит запуск макроса и заполнение ячеек вниз и вправо." Более подробно во вложении. Расскажу немного, как я это вижу. Необходимо, чтобы от числа шел массив. Соответственно задаем пустой массив, который будет назначаться в процессе макроса и при этом он будет натуральным числом(Integer). Далее мы задаем начало этого массива от выбранной ячейки. Дальше начинается цикл For Each, далее задаем значение целевой ячейки, а именно наш массив с помощью функции ubound - это функция которая создает ряд значений, и n, 1, мы задаем координаты в таблице, то есть n - значение в столбце, 1 - значение строки. Далее идет n = n - 1 и переход на след клетку, необходимо ряд свести к еденице. Затем происходит переход на соседнюю справа клетку. Для этого возвращаемся к первоначальной ячейке и используем функцию: ActiveCell.Offset(0, 1).Select (происходит переход вправо на одну ячейку). Повторяем ряд. Исполнение хромает. Вот что начеркал
Заранее спасибо за помощь.
Решение задачи: «Макрос на заполнение ячеек»
textual
Листинг программы
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim n& On Error Resume Next n = Target If Err Then Exit Sub If n > 0 Then With Target.Resize(n, n) .Formula = Replace("=IF(@-ROW(A1)-COLUMN(A1)>=0,@-ROW(A1),"""")", "@", n + 1) .Value = .Value End With Cancel = True End If End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д