Макрос на заполнение ячеек - 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