10分钟成为Excel高手——最简单的Excel VBA入门教程

这篇10分钟的Excel教程能让读者的Excel水平达到什么高度呢?答案是“学完后可以使Excel自动完成任何Excel支持的操作”。特别是在数据量大,手动操作又无法批量完成的时候,本文所介绍的Excel VBA知识就能派上大用场。那么,Excel VBA又是什么呢?下边先用一个简单的实例进行说明。

最简单的Excel VBA程序示例

入门篇——最简单示例

如上图所示,图中Excel文档的第一列填充得不全,以至于无法对整体数据进行筛选。庆幸的是,图中简单的Excel VBA代码就能帮助我们解决这个问题。执行代码后的效果如下图所示。

利用Excel VBA代码对第一列进行填充

通过上图的展示可以看到,Excel VBA能让我们避免简单重复的繁琐工作。此例中我们可以通过手动的方式对第一列中的数据逐年进行填充,但数据量大了之后手动工作就会变得非常繁琐。这种情况下我们可以通过寻找高级的Excel技巧来解决,但这种方法一般比较耗时,而且有时候不一定能找到合适的方法。这时候若掌握Excel VBA编程,一切问题就会容易得多。而这一实用的方法只需要学会如上图所示的最简单的几句Excel VBA编程语言就能够掌握。下边我对这几行代码进行解释说明。

Sub Macro1()

表示Macro1函数的开始,下边跟着的就是Macro1这个函数的代码

Dim i As Integer

定义一个整数类型的变量,变量名是 I

For i = 2 To 28

Next

这两行表示整个程序运行过程中i会从2递增到28,夹在这两行中间的代码会对i的每一种情况都做一次响应

If (Sheet1.Cells(i, 1) = '') Then

Sheet1.Cells(i, 1) = Sheet1.Cells(i - 1, 1)

End If

这是夹在刚才那两行代码中间的代码。对于i的每一种情况,这三行代码都要执行一次。也就是说i等于2时要执行一次,i等于3时要执行一次……i等于28时也要执行一次。那执行的究竟是什么呢?

If (Sheet1.Cells(i, 1) = '') Then

End If

这两行代表一个判断,判断Sheet1这个工作表中第i行第1列是否为空。判断为真的时候,也就是说Sheet1这个工作表中第i行第1列是空的话就执行这两行中间的代码。

Sheet1.Cells(i, 1) = Sheet1.Cells(i - 1, 1)

这是判断为真的情况下执行的代码,表示让Sheet1这个工作表中第i行第1列 等于 Sheet1这个工作表中第i-1行第1列。

代码很简单很好理解,那怎样才能让这些代码起作用?代码该写在哪?下边的图展示每一步的操作过程。只需要按图示进行操作就能看到代码的运行效果。

提高篇——录制宏

前面的最简单示例演示了如何对Excel单元格进行读写操作,那要实现文章开头所说的“自动完成任何Excel支持的操作”又该怎么做呢?答案是录制宏然后反查其代码

同样以实例进行说明。假如我们想通过Excel VBA来删除某行数据,那对应的代码该怎么写呢?这种情况下我们不用上网或翻书查资料,只需录制一个宏,然后看Excel保存的宏代码即可知道Excel VBA用怎样的代码来表示对应的操作。具体操作如下。

如上图所示,Excel最终用

Rows('2:2').Select

Selection.Delete Shift:=xlUp

这两行代码分别记录我们 选择行 和 删除行 的操作。我们可以直接抄这两句代码,当然也可以将这两行代码整合成

Rows('2:2').Delete Shift:=xlUp

这样,我们就实现了利用Excel VBA来删除行的功能。其它的功能可以利用同样的方法来实现。

(0)

相关推荐