根据源数据自动调整表格大小

根据源数据自动调整表格大小

我有一个名为的表Table1,它被工作簿(即目标文件)中的许多单元格引用。

中的数据Table1通常是从源文件中手动复制粘贴的:在源文件中,我选择数据范围,按 Ctrl+C,然后转到目标文件,选择左上角的单元格,Table1按 Ctrl+V。

当复制的数据行数多于 中现有数据时Table1,此操作会自动调整Table1为更大的表。但是,当复制的数据行数少于 中现有数据时Table1Table1不会自动调整为较小的表。我必须手动调整其大小。

是否有人知道是否有更好的操作可以使此复制粘贴Table1根据复制数据的大小自动调整大小?

答案1

对于你的烦恼,有一个非常简单的答案:

将表格缩减为标题和一个空白行。只有一个空白行。要么只有一行,在这种情况下,它只会填充它,要么在粘贴时会调整大小,直到粘贴的行数恰好与粘贴的行数相同。在任何情况下都不会出现行数少于表格中已有行数的情况。

但是,您不能使用FILTER()(具体来说,正如另一个答案中提到的)或任何Spill函数。它们在表格中不起作用,完全不起作用,在任何情况下都不起作用。您当然可以放置一组公式来从源中获取一行的数据,然后根据需要将其复制并粘贴下来,但这与您帖子中的做法一样困难。

编辑:

刚刚注意到有关现有公式的注释。它们仍将存在于单行中,并在您粘贴时填充下来。因此,与 不同Ctrl-A, Delete,您不会通过上述方法丢失它们。

如果您不需要在任何时候保存表中的数据,则此方法可以处理所有内容,因为每次使用后都会通过不保存来恢复单行。

当然,如果您确实需要保存,或者只是想保存,那么在下次使用新数据之前,您必须...手动...将数据清除到一行......这样问题就会及时转移。

您可以启动宏录制器,将表格缩减为单行,清除行中的数据(保留公式),然后结束录制。如果您为其指定快捷方式或创建按钮并将宏链接到它,Excel 每次都会为您完成工作。

如果每次使用后不保存,每次都会出现一行,所以没有问题。如果保存,那么您就不能使用 VBA OnOpen 或 OnSave 宏启动,因为它会抹去您的工作,所以只留下快捷键或按钮以方便使用。(或者用鼠标搜索宏并启动它,虽然这更难。不多!但我觉得你确实希望在这里尽可能少地进行交互。)

答案2

最简单的答案是:

当您要粘贴时,按住CTRLA然后Delete(键)删除旧数据,
然后粘贴新的数据(CTRL+ V)。

当然,这假设您在一张表上只有单独的数据,并且没有任何混合的公式。

答案3

表过滤器

如果您正在使用 Office 365,请使用过滤功能来避免手动问题,或者尝试以下操作:

=FILTER(Table1[#All],Table1[[#All],[Data1]]<>"","")

相关内容