해결 방법이
를 자동화하려면 시작 및 종료 연도를 업데이트 한 후 테이블 크기를 조정하는 일부 VBA 코드를 사용하십시오.
코드
다음은 "Sheet1"(셀 B1 및 B2)과 "Sheet2"의 테이블을 사용한 구현입니다. 당신이 참고 해야한다 코드가 해당 용지에 뭔가를 변경할 때마다 실행하기 때문에, 세월에있는 시트에이 코드를 추가합니다. 제 경우에는이 코드가 "Sheet1"에 추가됩니다.
Private Sub Worksheet_change(ByVal Target As Range)
Dim StartYear, EndYour As Range
Dim UpdateTable As ListObject
Dim NrOfRows, OldNrOfRows As Integer
' Set some ranges
Set StartYear = Worksheets("Sheet1").Cells(1, 2)
Set EndYear = Worksheets("Sheet1").Cells(2, 2)
Set UpdateTable = Worksheets("Sheet2").ListObjects("Table1")
' 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
End Sub
코드에 대한 설명의 일부 포인트 코드를 설명
하기 위해 Microsoft 함수 / 방법 / 속성에 대한 일부 참조 :