如何在Excel中创建类似报表的数据表?

时间:2012-09-20 05:28:57

标签: excel excel-vba vba

过去,我创建的网站从数据库中提取数据并使用表格对其进行格式化。

现在,我正在尝试使用Excel做同样的事情,我迷失了。我习惯使用SQL命令从给定字段中提取数据,然后对其进行排序/操作。

目前,我能够打印一份报告,为我提供一个包含原始数据的Excel电子表格,但我希望让我的生活更轻松,并将其整理成报告。

我想引用的列包含重复项,但相邻列中的数据不同。

举个例子,假设我有一个销售交易的电子表格。一列是客户ID,相邻列包含数量,每单位成本,总成本,订单ID等。

在这种情况下,我想要做的是选择具有相同客户ID的所有交易,并根据订单ID将它们添加到一起。然后,我想将结果打印到第二张表。

我意识到我可以使用内置函数来完成此任务,但我还想使用VBA格式化此报告。此外,由于我将有一个可变数量的行,从一个报告到下一个报告不同,我没有遇到允许您添加行的功能。

我假设必须用VBA完成。

1 个答案:

答案 0 :(得分:1)

嗯,你可以手动完成,但需要很长时间。所以VBA会很好,特别是因为你可以快速生成未来的报告。

我对您的说法的解释是,报告中的每一行都是一个客户ID的总和。如果它是别的东西,我想下面的内容仍然是最重要的。

我认为给你完整答案会有点多,特别是因为你没有提供完整的细节,只是为了抨击你做的事情:

  1. 创建空的报告页面,无论是新工作表还是新工作簿

  2. 循环遍历表格(可能使用While next is not empty)

    一个。确定行是否是您尚未涵盖的客户ID

    我。如果是,则在报告中添加新条目

    II。否则将其添加到现有客户ID记录(循环直到找到它)

  3. 格式化您的报告,使其看起来很漂亮,例如:

    一个。用白色填充背景

    湾扔进一些满满的酒吧

    ℃。投入好的头衔和总数等。

  4. 对于第1部分,最好先构建一个数组,然后将内容转储到报告中。这取决于过程密集程度 - 如果非常强烈,阵列应该缩短时间。