ad

《Excel VBA+SQL数据管理与应用模板开发》_工作效率UP!_8.0 VBA基本知识复习

网友投稿 160 2023-11-07

【摘要】 本书摘自《Excel VBA+SQL数据管理与应用模板开发》一书中第8章,第1节,韩小良著。

8.0 VBA基本知识复习

有的读者在阅读本书的前几章时,可能会对VBA 代码不理解,没 关系,本章将带领大家对Excel VBA的基本知识从头复习一遍,这样 便于融会贯通。

8.1 从录制宏开始了解Excel VBA

《Excel VBA+SQL数据管理与应用模板开发》_工作效率UP!_8.0 VBA基本知识复习

很多读者觉得宏和VBA 神秘莫测,非常难学,其实这是一个误区。如果要使 用VBA 来解决日常数据处理和分析问题,其实并不难,也不神秘;如果你想成为 程序员来开发应用程序,但自己又不是计算机专业的学生,那么VBA 看起来就很 高深了。

VBA 是 Visual Basic for Application 的缩写,是面向对象的编程语言,其核 心 是VB 语言,但又有自己的独特编程方法。Excel VBA 就是面向Excel 对象的 编程语言,Excel 对象有Application(Excel 应用程序)、Workbook (工作簿)、 Worksheet (工作表)、Range (单元格)、Chart (图表)等,在我们曰常工作中, 也在频繁地处理这些对象,例如在某个工作簿的某个工作表的某些单元格中处理数据。

了解Excel VBA 的第一步是录制宏,然后研究每步操作与录制的对应宏代码, 从而可以快速掌握Excel VBA 的基本使用方法和编程技巧。

8.1.1 录制宏

要想录制宏,必须先在功能区中调出“开发工具”选项卡。然后单击“录制宏”按钮,“录 制宏”按钮的位置如图8-1 和图8-2所示。

下面我们结合一个例子来说明录制宏的基本方法和步骤。

如图8-3所示是从 K3 导出的数据,这个表格有两个问题需要处理。

(1)A 列的日期是文本型日期,需要将其转换为数值型日期。

(2)A~D 列存在大量空单元格,这些空单元格实际上是上一行的数据,故需要填充。

步 骤 1 单击“录制宏”按钮,打开“录制宏”对话框,如图8-4所示。默认情况下, 宏名为类似“宏1” “宏2”“宏3”这样的名字,保存位置是当前工作簿。我们可以重新起 一个宏名,并加说明文字,如图8-5所示。

步 骤② 单击“确定”按钮,就开始录制宏了。

步 骤③ 在当前工作表中进行数据处理操作,要特别注意尽量不要出错和重复,因为 不论是何种操作,均会被录制下来。因此,为减少不必要或错误的操作,在录制宏之前最好 制订计划以确定所要执行的步骤和命令。具体的计算操作过程如下:

(1)选中A列,使用分列工具将A 列的文本日期转换为真正日期。

(2)单击单元格 A1, 退出A 列的选中状态。

(3)按 Ctrl+A组合键,选择整个数据区域。

( 4 ) 按F5 键,打开“定位”对话框,再打开“定位条件”对话框,选择数据区域内的 所有空单元格。

(5)在单元格A4 中输入公式“=A3”, 按 Ctrl+Enter 组合键,将数据区域内所有的空单 元格填充为上一个单元格数据。

步 骤 4 )单击“停止录制”按钮,退出录制宏状态。

这样,录制宏的工作就完成了。

8.1.2 编 辑加工宏

为了能够把录制的宏整理成为一个通用的可重复使用的宏,我们需要对录制的宏进行编 辑加工。

在“开发工具”选项卡中单击 “Visual Basic” 按钮,或者按Alt+F11组合键,打开 “Visual Basic 编辑器”窗口(简称VBE 窗口),在“VBAProject”窗格中单击“模块”左边的“+”号, 展开模块,然后双击“模块1”,打开宏代码窗口,如图8-6所示。 一般情况下,新录制的宏 保存在“模块1”中。若有很多模块,而又不知道录制的宏保存在哪个模块中,可以双击每 个模块进行查看。

下面是录制的宏代码。

Sub 整理数据O

'整理数据宏

'任务:修改A列非法日期;并填充空单元格

Columns("A:A").Select

Selection.TextToColumns Destination:=Range("A1"),DataType:=xIDelimited,_

TextQualifier:=xIDoubleQuote,ConsecutiveDelimiter:=False,Tab:=True,_

Semicolon:=False,Comma:=False,Space:=False,Other:=False,FieldInfo _

:=Array(1,5),TrailingMinusNumbers:=True

Range("A1:G27").Select

Selection.SpecialCells(xlCellTypeBlanks).Select

Application.CutCopyMode =False

Selection.FormulaR1C1 ="=R[-1]C"

End Sub

下面对录制的宏代码进行分析。

(1)宏命令以Sub 开 始 ,“Sub 整理数据0”表示宏名为“整理数据”,在 Sub 和宏名之 间应有至少一个空格,宏名后应有一对双括弧“0”。宏命令以 End Sub结束。在 Sub 和 End Sub 之间的各行语句均为宏代码,都是VBA命令。

(2)以单引号“”开头的语句为注释语句,仅表示对程序的注释说明,适当加入注释语 句可以增强程序的可读性,避免在程序出现错误而需要修改时出现困难。注释语句以绿色背 景出现。在执行宏时,所有的注释语句均被忽略。本例中,系统自动给出了宏名和注释说明。

(3)Columns 是 Excel VBA的一种 Range的对象,Columns("A:A")表示引用A 列。

(4)Select 是 Excel VBA的一种方法,也就是执行选择某个对象的动作。Columns("A:A"). Select 就是选择A 列。

(5)Selection 表示被选中的对象,这里就是指A 列。

(6)Selection.TextToColumns 这个长语句就是执行对A 列的分列命令,重点是将A 列数 据格式转换为日期。

(7)Range 是 Excel VBA的一种对象,代表工作表的单元格。Range("A1:G27").Select 表 示选择当前工作表的单元格区域 A1:G27。

(8)当选中了单元格区域A1:G27 后,就使用SpecialCells方法定位特殊的单元格,这个 语句就是 Selection.SpecialCells(xlCellTypeBlanks).Select, 也就是定位所选区域内的空白单元格, 并选中这些空白单元格。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《Python+3自动化软件发布系统》Django 2实战_了解Python的更好方法_3.5.2 远程执行脚本命令
下一篇:《自己动手写 Python 虚拟机》_更理解虚拟机的意义_6.1.2 创建Function Object
相关文章

 发表评论

暂时没有评论,来抢沙发吧~