VBA menambahkan baris dan menghapus baris secara otomatis saat mengubah awal / akhir tahun


0

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

  1. tabel untuk shrik / memperluas dengan baris bawah (2014) selalu menjadi baris bawah dan untuk setiap baris tambahan datang dari atas
  2. 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. Updatetable.ListRows.Add (1)atau...Add AlwaysInsert:=True
Raystafarian

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.