Saya memiliki 3 tabel, saya ingin mengubah jumlah baris ketika saya memperbarui jumlah tahun. Apakah saya mengubah akhir tahun atau memulai tahun di mana tabel dapat melenturkan. Masalah yang saya temui sejauh ini adalah bahwa jika saya membuat tabel lebih besar, baris yang ditambahkan adalah setelah akhir tahun dan tidak di bawah (TIDAK termasuk dalam tabel sebenarnya). Karena itu, mungkin menggeser tabel ke bawah dan menyalin rumus sepanjang jalan dengan sisa tahun ini?
Inilah yang saya miliki sejauh ini:
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
Saya baru di forum dan benar-benar tidak yakin bagaimana memberikan data sampel. katakanlah tabel sesederhana 2 kolom. Satu kolom selama bertahun-tahun, kolom lain untuk menghitung sesuatu.
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
Saya mencari
- tabel untuk shrik / memperluas dengan baris bawah (2014) selalu menjadi baris bawah dan untuk setiap baris tambahan datang dari atas
- rumus yang akan disalin dalam baris yang ditambahkan
beri tahu saya jika itu masuk akal.
microsoft-excel
vba
Sam
sumber
sumber
Updatetable.ListRows.Add (1)
atau...Add AlwaysInsert:=True