一次解析文件2行-英雄云拓展知识分享
160
2023-11-07
【摘要】 本书摘自《Excel VBA+SQL数据管理与应用模板开发》一书中第8章,第1节,韩小良著。
8.0 VBA基本知识复习
有的读者在阅读本书的前几章时,可能会对VBA 代码不理解,没 关系,本章将带领大家对Excel VBA的基本知识从头复习一遍,这样 便于融会贯通。
8.1 从录制宏开始了解Excel 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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~