У меня есть 3 таблицы, которые я хотел бы изменить количество строк, как я обновляю количество лет. Менять ли я конец года или год начала, где таблица может сгибаться. Проблема, с которой я столкнулся до сих пор, состоит в том, что если я увеличу таблицу, добавленная строка будет после конечного года, а не ниже (НЕ включена в фактическую таблицу). Поэтому, может быть, сдвинуть таблицу вниз и скопировать формулу до конца года?

Это то, что я до сих пор:

Private Sub Worksheet_change(ByVal Target As Range)
Dim StartYear, EndYour As Range
Dim UpdateTable As ListObject
Dim UpdateTableInput As ListObject
Dim NrOfRows, OldNrOfRows As Integer

' Set some ranges

Set StartYear = Worksheets("Sheet1").Cells(1, 2)
Set EndYear = Worksheets("Sheet1").Cells(2, 2)

Dim i As Integer
For i = 1 To 3
    Set UpdateTable = Worksheets("Sheet2").ListObjects("Table" & i)


    ' Check if start or end years have changed
    If (Not Intersect(StartYear, Target) Is Nothing) Or (Not Intersect(EndYear, Target) Is Nothing) Then
        ' Store the new and old number of rows
        OldNrOfRows = UpdateTable.ListRows.Count - 1
        NrOfRows = EndYear.Value - StartYear.Value + 1

        ' Resize the table
        UpdateTable.Resize UpdateTable.Range.Resize(1 + NrOfRows)

        'Delete cells below the table if it gets smaller
        If OldNrOfRows > NrOfRows Then
            UpdateTable.Range.Offset(NrOfRows + 1, 0).Resize(OldNrOfRows - NrOfRows + 1).Delete
        End If
    End If
Next i

End Sub

Я новичок в форуме и действительно не знаю, как предоставить пример данных. скажем, таблицы так же просты, как 2 столбца. Один столбец для лет, другой столбец для расчета чего-либо.

StartYear = 2011 
EndYear = 2014 

2010 (2011 -1 )   -----  128 (64*2)

2011 (2012 -1 )   -----  64  (32*2)

2012 (2013 -1 )   -----  32  (16*2)

2013 (2014 -1 )   -----  16  (8*2) 

2014              -----  8

Я ищу

  1. таблица, чтобы сжать / развернуть с нижней строкой (2014), всегда являющейся нижней строкой и для любой добавленной строки, идущей сверху
  2. формулы, которые будут скопированы в эти добавленные строки

дайте мне знать, если это имеет смысл.

0