EXCEL: создание / удаление строк с автоматически заполненными данными / функциями, соответствующими числу в ячейке - PullRequest
0 голосов
/ 02 апреля 2011

Моя проблема в том, что у меня есть небольшая формула, которая имеет минимум 2 строки и должна быть расширена до заданного числа из другой ячейки.Например, минимум 2 строки - тогда ячейка, нумерующая количество строк, будет установлена ​​равной 10. Затем между строками 1 и 2 будут добавлены еще 8 строк с автоматическими данными, которые аналогичны тем, которые вы перетаскиваете с помощью параметра автоматического заполнения.Опять же, когда вы устанавливаете число от 10 до 4, тогда 6 строк должны быть удалены.

Надеюсь, что вы сможете понять, о чем я думаю, и снова мне очень жаль, если это неясно илине выполняет все требования к вопросу.

1 Ответ

2 голосов
/ 02 апреля 2011
  1. Определите три именованные ячейки - скажем, FirstCell, LastCell и HowMany.Убедитесь, что LastCell прямо под FirstCell.

  2. Создайте обработчик Worksheet_Change.Если диапазон Target соответствует ячейке HowMany, добавьте или удалите ячейки между FirstCell и LastCell:

    If Target.Address = Me.Range("HowMany").Address Then
      If Not IsEmpty(Target.Value) Then
        If IsNumeric(Target.Value) Then
          If Target.Value >= 2 Then
    
            Dim i As Long
            Dim rows_before As Long
    
            rows_before = Me.Range("LastCell").Row - Me.Range("FirstCell").Row + 1
    
            If rows_before < Target.Value Then
              For i = 1 To Target.Value - rows_before
                Me.Range("LastCell").Insert xlShiftDown
              Next
            ElseIf rows_before > Target.Value Then
              Me.Range(Me.Range("LastCell").Offset(-1, 0), Me.Range("LastCell").Offset(-(rows_before - Target.Value), 0)).Delete xlShiftUp
            End If
    
            Me.Range(Me.Range("FirstCell"), Me.Range("LastCell")).FillDown
          End If
        End If
      End If
    End If
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...