2013-06-04 63 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