【问题标题】:Excel table not expanding when new data is added添加新数据时 Excel 表格未展开
【发布时间】:2020-04-10 09:01:05
【问题描述】:

我有一个 Excel 电子表格,它在同一个选项卡上包含四个数据表。每列的最后 3 列包含公式。

然后我有一个 vba 代码,它在 SQL Server 表中执行 sql 查找并返回一组列数来更新四个表中的每一个。

对于其中三个表格,数据被粘贴进去,表格自动展开,公式被复制到表格末尾。

但是,对于第一个表,数据被粘贴,但表没有展开,因此,公式不会被添加到表外的行中。

我到处寻找解决方法,但没有任何乐趣。我搜索了数据提取 VBA 代码,但没有运气(代码完全匹配),也没有对表属性感到高兴。我还检查了“键入时自动设置格式”设置的“选项”菜单,但一切似乎都很好。

有人对我有什么想法吗?

谢谢,

大卫。

大家好,

很想知道是否有人对此有答案,但同时我已经捏造了代码以根据最后一个数据单元格的行号自动调整表格的大小。

谢谢,

大卫。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    我遇到了同样的问题,这让我发疯了。发现在几列中我将公式拖得很远(如果第一列为空,它们是 IF 语句,不返回任何内容)所以我没有看到它们。

    因此,请删除表格最后一行“下方”的所有公式。应该解决这个问题。

    【讨论】:

      【解决方案2】:

      最常见的原因是由于列数不同或未对齐(垂直堆叠的表格)或行数不同或未对齐(水平堆叠的表格)。

      为简单起见,让我们使用垂直堆叠的表格来说明正在发生的事情。考虑一个有 2 列的上表和一个有 3 列的下表。如果我们尝试在上表中插入一行,XL 会尝试将表下方的所有单元格向下推,但仅将表正下方的单元格向下推。因此,在这种情况下,两列下方的单元格将被向下推。 XL 很快意识到,如果它只向下推 2 列,下部表中的第三列将不会被向下推,从而导致下部表倾斜。 XL 没有试图弄清楚如何移动较低的桌子。它甚至拒绝尝试。

      将列添加到左侧的表格中也是如此,右侧有表格。如果向表中添加列会导致表中的行向右倾斜,XL 将拒绝提供帮助。

      为了避免这个问题,我们可以做一些事情:

      • 将最大的表格保持在顶部和左侧,并对齐所有表格的第一列和第一行。
      • 如果只向表格添加行,请勿垂直堆叠
      • 如果只在表格中添加列,请不要将它们水平堆叠。

      【讨论】:

        【解决方案3】:

        以下是在将数据复制到表底部后强制扩展表的示例。这是通过调整表格大小来完成的。最初该表没有自动调整大小,因为它有额外的计算列。 代码的第一行查找最后一行数据,第二行说明表格需要调整大小的范围。第三行将表格调整为新范围。 将 sXXX 和 tXXX 替换为您的工作表名称和表格名称。

        Sub ResizeTableXXX()
            myLastrowOfData = sXXX.Range("A1000000").End(xlUp).Row
            myNewRangeSize = "$A$5:$P$" & myLastrowOfData
            sXXX.ListObjects("tXXX").Resize Range(myNewRangeSize)
        End Sub
        

        【讨论】:

          猜你喜欢
          • 2018-11-19
          • 2021-04-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-07-24
          • 1970-01-01
          相关资源
          最近更新 更多