2013-06-04 61 views
0

我一直在尋找幾個小時來解決這個問題,但我無法找到答案。Excel Dynamic Growing Row

我有一個excel表,我有另一張表的部分副本。

現在我想要的是當我在第一個表格中添加一行時(請注意,下面還有一些文字,但我可以在那裏放一個標記或類似的標記以表明它應該在那裏結束),我的其他表也會添加相同數量的行(另請注意,我的第二個表格下面有文字)。

我不知道如何做到這一點,最好的方法是什麼?

我甚至不確定我問的是否合理。

因此,讓我在不同的詞再試一次:

表1:

  • 一些文本
  • 我行
  • 一些文本

第2頁:

  • 另一個文本
  • 我行
  • 其他文本

,如果我在表1中添加行,我希望他們也加入到紙2

這可能嗎?

非常感謝球員

+1

合適的答案只是允許你在每個表格中插入相同數量的行嗎?即,你運行一個宏,詢問你A)要插入多少行,以及B)在哪一行開始插入;然後將這些行適當地插入到兩個表中。 –

+0

如果不是,那麼[this](http://www.mrexcel.com/forum/excel-questions/80626-insert-row-event.html)可能會讓你開始。 –

+1

@DavidZemens首先發表評論是一個很好的開始。或者可以使用事件來控制和做你需要的。 WtFudgeE,你沒有用VBA標記這個問題,沒有宏,提出的解決方案將無法工作。你是怎麼找到它的。可能添加一些屏幕截圖,顯示您確切需要的內容。 –

回答

0

一個可能的解決辦法是在C#中,在那裏你您在一個表中插入數據複製相同的表格內容或片的拷貝到目標表後實際。或者通過copytoclipboard,您可以將任何表格複製到desintation中。你在尋找哪種解決方案? C#,VBA?

sheet.UsedRange.Copy(Missing.Value); 
sheet.Range(cellmapp).PasteSpecial(); 

其中cellmapp是您希望它取代的範圍。如果你的文字是爲了巨大的區域,你可以使用sheet.Columns.AutoFit(); sheet.Rows.AutoFit();這將是一個C#解決方案,但需要更多的編程。

並通過紙張循環:

foreach (Excel.Worksheet sheet in workbook.Sheets) 
{ 
    workbook.Activate(); sheet.Activate(); foreach (Excel.Shape shape in sheet.Shapes) 
    { } 
} 

對於行,修改或交換的地方,你可以簡單地從一個位置移動到右側可能所有現有的行值,如果你創建一個新的行。

sheet.UsedRange.Copy(Missing.Value); //copy your existing row's 
sheet.Range(cellmapp).PasteSpecial(); // move them from B4 to C4