了解如何使用Excel宏自动执行繁琐的任务

Excel较强大但很少使用的功能之一是能够非常轻松地在宏内创建自动任务和自定义逻辑。宏提供了一种理想的方式来节省可预测的重复性任务的时间,并标准化文档格式-很多时候无需编写一行代码。

如果您对宏是什么或如何实际创建宏感到好奇,没问题-我们将带您完成整个过程。

注意:大多数版本的Microsoft Office都应该可以使用相同的流程。屏幕截图看起来可能略有不同。

什么是宏?

Microsoft Office宏(因为此功能适用于几个MS Office应用程序)只是保存在文档中的Visual Basic for Applications(VBA)代码。作为一个可比较的类比,可以将文档视为HTML,将宏视为Javascript。就像Javascript可以操作网页上的HTML一样,宏也可以操作文档。

宏的功能非常强大,几乎可以做任何您想象得到的事情。作为您可以使用宏执行的函数的(非常)简短列表:

应用样式和格式。 操作数据和文本。 与数据源(数据库、文本文件等)通信。 创建全新的文档。 以上任一项的任何顺序的任意组合。

创建宏:举例说明

我们从你的花园品种CSV档案开始。这里没有什么特殊之处,只是一组介于0和100之间的10x20的数字,其中既有行标题,也有列标题。我们的目标是生成格式良好的、可展示的数据表,其中包括每行的汇总。

如上所述,宏是VBA代码,但是Excel的好处之一是您可以创建/记录它们,而不需要编写任何代码-就像我们将在这里所做的那样。

要创建宏,请转到视图>宏>录制宏。

为宏指定一个名称(不带空格),然后单击“确定”。

一旦完成此操作,您的所有操作都会被记录下来-每次单元格更改、滚动操作、窗口大小调整,您都可以命名。

有几个地方表明Excel是记录模式。一种方法是查看“宏”菜单,并注意到“停止录制”已取代“录制宏”选项。

另一个在右下角。“停止”图标表示它处于宏模式,按此处将停止录制(同样,当不处于录制模式时,此图标将是“录制宏”按钮,您可以使用该按钮而不是转到“宏”菜单)。

现在我们正在记录宏,让我们应用汇总计算。首先添加标题。

接下来,(分别)应用适当的公式:

=SUM(B2:K2)。 =平均值(B2:K2)。 =MIN(B2:K2)。 =MAX(B2:K2)。 =中位数(B2:K2)

现在,突出显示所有计算单元格,并拖动所有数据行的长度以将计算应用到每行。

完成此操作后,每行应显示各自的摘要。

现在,我们希望获得整个工作表的汇总数据,因此我们再应用几个计算:

分别为:

=SUM(L2:L21)。 =平均值(B2:K21)*必须计算所有数据的平均值,因为行平均值的平均值不一定等于所有值的平均值。 =MIN(N2:N21)。 =MAX(O2:O21)。 =所有数据的中位数(B2:K21)*计算原因与上述相同。

现在计算已经完成,我们将应用样式和格式。首先,通过执行全选(Ctrl+A或单击行和列标题之间的单元格)对所有单元格应用常规数字格式,然后选择Home菜单下的“Comma Style”图标。

接下来,将一些视觉格式应用于行标题和列标题:

大胆。 居中。 背景填充颜色。

最后,给总数加上一些风格。

完成所有操作后,我们的数据表如下所示:

由于我们对结果感到满意,因此停止录制宏。

祝贺您-您刚刚创建了一个Excel宏。

为了使用新录制的宏,我们必须将Excel工作簿保存为启用宏的文件格式。但是,在执行此操作之前,我们首先需要清除所有现有数据,使其不会嵌入到我们的模板中(我们的想法是,每次使用此模板时,我们都将导入最新的数据)。

要执行此操作,请选择所有单元格并将其删除。

现在清除了数据(但宏仍包含在Excel文件中),我们希望将该文件另存为启用宏的模板(XLTM)文件。请务必注意,如果将此文件另存为标准模板(XLTX)文件,则将无法从该文件运行宏。或者,也可以将文件另存为旧版模板(XLT)文件,这将允许运行宏。

将文件另存为模板后,继续并关闭Excel。

使用Excel宏

在介绍如何应用这个新录制的宏之前,重要的是概括一下宏的几个要点:

宏可能是恶意的。 请参见上面的观点。

VBA代码实际上相当强大,可以操作当前文档范围之外的文件。例如,宏可以更改或删除“我的文档”文件夹中的随机文件。因此,确保只运行来自可信来源的宏非常重要。

要使用我们的数据格式宏,请打开上面创建的Excel模板文件。执行此操作时,假设您启用了标准安全设置,您将在工作簿顶部看到一条警告,说明宏已被禁用。因为我们信任自己创建的宏,所以请单击“启用内容”按钮。

接下来,我们将从CSV(这是工作表用于创建宏的源)导入最新的数据集。

要完成CSV文件的导入,您可能需要设置一些选项,以便Excel正确解释该文件(例如,分隔符、存在的标题等)。

导入数据后,只需转到Macros菜单(在View选项卡下)并选择View Macros。

在出现的对话框中,我们看到上面录制的“FormatData”宏。选择它并单击Run(运行)。

一旦运行,您可能会看到光标跳来跳去一段时间,但是在这样做的同时,您会看到数据被完全按照我们记录的方式进行操作。当一切都说完了,做完了,它看起来应该和我们的原版一模一样--只是有不同的数据。

引擎盖下看:是什么让宏观发挥作用

正如我们多次提到的,宏由Visual Basic for Applications(VBA)代码驱动。当您“录制”宏时,Excel实际上会将您所做的一切转换为其各自的VBA指令。简单地说,您不必编写任何代码,因为Excel会为您编写代码。

要查看使宏运行的代码,请在“宏”对话框中单击“编辑”按钮。

打开的窗口显示创建宏时从我们的操作中录制的源代码。当然,您可以编辑此代码,甚至可以完全在代码窗口内创建新宏。虽然本文中使用的录制操作可能会满足大多数需求,但是高度定制的操作或有条件的操作需要您编辑源代码。

让我们的示例再深入一步,…

假设我们的源数据文件data.csv是由自动过程生成的,该过程始终将文件保存到同一位置(例如,C:\data\data.csv始终是最新的数据)。也可以轻松地将打开此文件并将其导入宏中:

打开包含“FormatData”宏的Excel模板文件。 录制名为“LoadData”的新宏。 使用宏录制时,您可以像往常一样导入数据文件。 导入数据后,停止录制宏。 删除所有单元格数据(选择全部,然后删除)。 保存更新后的模板(记住使用启用宏的模板格式)。

完成此操作后,无论何时打开模板,都会有两个宏-一个用于加载我们的数据,另一个用于格式化数据。

如果您确实想通过一些代码编辑来弄脏您的双手,您可以通过复制“LoadData”生成的代码并将其插入到“FormatData”的代码开头,轻松地将这些操作组合到单个宏中。

下载此模板

为了您的方便,我们提供了本文中生成的Excel模板和一个示例数据文件供您使用。

从How-to Geek下载Excel宏模板

相关文章