【问题标题】:Excel Dynamic Growing RowsExcel 动态增长行
【发布时间】:2013-05-30 08:44:04
【问题描述】:

我一直在寻找几个小时来解决这个问题,但我找不到答案。

我有一张 Excel 表格,还有一张包含该表格部分副本的表格。

现在我想要的是当我在我的第一个表中添加一行时(请注意,在此下方也有文本,但我可以在那里放置一个标记或类似标记它应该在那里结束的东西),我的另一个表也​​会添加相同数量的行(另请注意,我的第二个表下面有文字)。

我不知道该怎么做,最好的方法是什么?

我什至不确定我问的是否有意义。

所以让我换个说法再试一次:

表 1:

  • 一些文字
  • 我的行
  • 一些文字

表 2:

  • 其他文字
  • 我的行
  • 其他文字

如果我在工作表 1 中添加行,我希望它们也被添加到工作表 2。

这可能吗?

非常感谢大家

【问题讨论】:

  • 一个合适的答案是否允许您在每个表中插入相同数量的行?即,您运行一个宏,询问您 A)要插入多少行,以及 B)从哪一行开始插入;然后将行适当地插入到两个表中。
  • 如果没有,那么this 可能会帮助您入门。
  • @DavidZemens 第一条评论是一个很好的起点。或者,可以使用事件来控制和做你需要的事情。 WtFudgeE,您没有用 VBA 标记这个问题,并且如果没有宏,建议的解决方案将无法工作。你是怎么找到它的。可能会添加一些屏幕截图来展示您真正需要的内容。
  • @KazJaw +1 这两个建议都需要 VBA 或事件宏。第二条评论与事件有关:) 有没有一种简单的方法来捕获行插入事件?
  • @DavidZemens,老实说,我不知道我们可以采用哪种确切方式,但我认为这是可行的 :)

标签: excel dynamic row


【解决方案1】:

一个可能的解决方案是在 C# 中,您实际上是在将数据插入到一个工作表中之后,将相同的表格内容或该工作表的副本复制到目标工作表中。或者通过copytoclipboard,你把任何表复制到目的地。您正在寻找哪种解决方案? 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 2011-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多