如何创建各种长度的自定义生成报告?

时间:2012-04-18 15:48:04

标签: excel vba

我正在尝试在Excel中为我从其他工作簿中提取的数据创建标准化表单。

我想根据单独表格(数据表)中提供的数据自动生成表单(报表)。我认为编写脚本以从多个工作簿中提取个人信息会更简单。

我的问题是记录(行)的数量是变体。我不能简单地将数据从数据表映射到报告表,因为有些报告会有20行,有些会是8行等。

实现这一目标的最简单方法是什么?我坚持如何创建一个宏来检查数据表中有多少行,并在报表上创建相应的数字,只选择我想要的预先确定的字段。

我意识到这可以在Access中轻松完成,但我没有Access。

感谢您的投入。

1 个答案:

答案 0 :(得分:0)

首先,您有一个正确的想法,即拥有数据表和单独的报告表,以适当的格式显示所需的数据。

“我不能简单地将数据从数据表映射到报告表,因为对于某些报告,将有20行,有些将是8,等等。”

我不确定你的意思是什么,你是说数据表上的行可以增大和缩小?或者您是否希望最终用户能够在报告中选择他们想要的行?换句话说,什么决定了你想要报告的哪些行?

除此之外,首先您只想使用单元格值,这样在将它们复制到报表单时,会保留报表上的所有格式。

就转移数据而言,根据您对上述问题的回答,使用vba可以通过多种方式进行转移。

  • 根据条件(使用副本到另一个位置)预先过滤行
  • 复制用户选择的所有行(不应使用循环,For Each Row等)
  • 根据用户输入所需行的用户输入框复制行。

我建议复制所有列,然后隐藏不需要的列:

Worksheets("Report").Range("B:B,D:E").EntireColumn.Hidden = True