我想在工作表中对数据进行排序,每天在第二张工作表中获取新行。
问题是,如果我使用SMALL() - 函数并自动填充单元格直到最后一行(A102482或类似的东西),我的文件变得非常庞大且滞后(> 20mb)。
当然,添加新行的人可以将第二个工作表中的公式扩展为新行,但这根本不是用户友好的!
什么是最好的解决方案?我想到了vba-code,它计算第一个工作表中的条目,然后运行像这样的代码
for (i to numberrows; i++) { SMALL(A + i + 2*3, i) }
填写第二个工作表中的前几行,以便excel文件不会太大......
提前致谢!
编辑:
更具体一点:
我要求excel做的是复制工作表并将行排序在第二个工作表上。当表格消耗时,排序表当然有更多的值。此过程应自动完成,用户只需在第一个工作表中输入新数据,并在第二个工作表中查看结果。让第二个工作表的单元格全部已经填充SMALL()函数不是一个选项,因为这在我的情况下可以工作,但这太慢了,文件太大了......
答案 0 :(得分:1)
我想我在这里找到了答案:
Excel VBA: AutoFill Multiple Cells with Formulas
很抱歉我的问题太误导了,基本上上面的答案就是我所要求的...感谢您的时间和答案!
编辑:链接到包含答案的特定帖子
答案 1 :(得分:1)
我建议从数据透视表中创建第二个表,即从属表。
每次刷新数据时,第一张纸都会增大和缩小,可以设置为在打开文件时自动刷新。方法如下:
使用“插入>表格”格式化第一个列表。然后使用“使用数据透视表进行汇总”或“插入>数据透视表”(相同功能的2个名称)将数据透视表放在下一页上。
将所需的所有列放在显示的数据透视表向导上的“行标签”下的第二个工作表中。
在数据透视表工具下>设计>布局>小计,选择“不显示小计”。 在数据透视表工具下>设计>布局> Grand Totals,选择“Off for Rows and Columns”。 在数据透视表工具下>设计>布局>报告布局,选择“以表格形式显示。”
请注意,如果行标签中列表顶部没有唯一的内容,类似于我的示例中的“ID”(= ROW()),数据透视表将使用您可能的数据执行智能操作不想要。
以下是如何在文件打开时自动刷新事物。或者,您右键单击表格并选择“刷新”。
如果您想在每次数据更改时刷新数据透视表,请输入
Sheets("Sheet2").PivotTables(1).PivotCache.Refresh
(将“Sheet2”替换为表格所在的工作表的名称;激活左侧的数据表;在第一个下拉列表中选择工作表,然后选择第二个下拉列表上的更改以访问Sub Worksheet_Change代码区域)
...这里:
干杯!