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.
Bisakah Anda memberikan beberapa data sampel - apa yang harus terjadi ketika rentang tanggal berubah? Seperti, tidak sepenuhnya jelas apa yang Anda minta.
—
Excellll
Kemungkinan rangkap: superuser.com/q/810892/76571
—
Excellll
bagaimana cara memformat pertanyaan saya? Saya berusaha membuat angka-angka itu dalam format tabel dan menempatkannya di baris yang berbeda.
—
Sam
Mengapa tidak memasukkan saja baris ke dalam tabel? Saya mengalami kesulitan memahami di mana Anda memasukkannya ke dalam kode.
—
Raystafarian
Updatetable.ListRows.Add (1)
atau...Add AlwaysInsert:=True
sebenarnya saya sedang mengerjakan hal ini dan menambahkan lebih banyak baris jika memungkinkan dengan for loop Jika OldNrOfRows <NrOfRows Kemudian Dim z Sebagai Integer Untuk z = OldNrOfRows Ke NrOfRows UpdateTable.ListRows.Add (1) Selanjutnya z Berakhir Jika tetapi belum sempurna belum . Tetapi pertanyaan utama setelah ini adalah, apakah saya memiliki rumus disalin di baris baru?
—
Sam