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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5
Похожие ответы