1. VBA在EXCEL中能解决什么问题EXCEL很好用,尤其是在数据统计和处理的时候,但是EXCEL本身提供的函数有它自己的局限性,很多特定的功能无法实现,用起来不够灵活,那么EXCEL中嵌入的VBA编程语言就可以解决这个问题,它可以: l 处理若干单元格中重复的具有同一特征的数据。举个例子,一个单元格里面有字符和数字,现在想只保留单元格中数字,去除其他字符。这个可以用VBA语言中的循环语句+数字识别命令识别单元格中数字,并对其他字符删除。 l 对具有某一特征的多个单元格的数据进行处理。例如,将满足某一特征A的单元格中数据和满足另一特征B的单元格的数据合并或其他操作,存放在另一个位置的单元格组中。 l 其他的只有你想不到没有办不到的应用。 2.VBA怎么使用VBA一般的开发流程是这样的: l 准备工作:对待处理的数据进行特征分析,确定处理的目标、怎么干等; l 打开VBA开发环境; l 选择操作的对象,如工作表; l 选择操作对象的动作和响应事件,如双击、选中、右击等; l 编写事件代码,如对单元格双击后执行什么操作; 如有必要,可以添加人机交互窗体; l 运行VBA程序; l 保存和关闭。 2.1使用的前提l 使用者应当具有一定的编程基础,有VB开发经验最好。 2.2入门介绍和不完全使用步骤(1)EXCEL VBA开发环境介绍l 打开VBA开发环境 图 1 图 2 VBA的编程环境 l 编写代码、添加人机交互界面等 如图 2中的编程区,在里面就可以编写用户代码。 Ø 编写代码一般先需要选择操作对象。“通用”一般用于全局变量的定义,“worksheet”一般用于工作表的操作; Ø 还需要选择动作和响应事件。用于处理对对象进行某种操作之后的响应事件,如双击单元格后执行什么动作,右击单元格之后执行什么操作等。根据提示的助记符单词应该大致知道是什么动作事件。 事件选择完成后,会弹出一段子过程定义段,在定义段内编写代码即可。 如有需要,也可以添加人际交互的窗体,用于运行过程控制、输入参数、显示参数等功能。 图 3 添加人机交互窗体 添加了窗体和控件之后,就可以像VB那样子编写程序,如: Ø 按键控件的操作。点击按钮控件,编写按键动作事件发生后执行的操作的程序等。 Ø 文本框的操作。文本框有输入和输出的功能,根据需要编写相应的程序。 Ø 其他控件的使用方法不再详述。 l 运行和保存 工具栏上有个倒三角按钮,点击它就可运行程序,也可以点击菜单栏[运行],里面有运行按键,功能一样。 图 4 图 5 保存和其他文件的操作方式一样,可以点击菜单栏文件/保存。 如果要保留EXCEL文件中的VBA代码,一般需要启用宏,并保存为.XLSM(启用了宏的工作表)格式的文件。 启用宏的方法: Ø 点击EXCEL文件的左上角[开始]菜单; Ø 点击[EXCEL选项]/[信任中心]/[信任中心设置]/[宏设置],再进行如下的启用宏的设置; 图 6 启用宏的设置 设置完成后点击“确定”按钮,保存关闭后再打开就可以了,宏已经被启用了。 注意:如果保存文件的时候已经运行了VBA代码,那么下次打开EXCEL文件时它会自动进入执行状态,假如没有的话再次打开VBA开发界面,点击上方的倒三角运行按钮就可以运行程序了。 (2)EXCEL VBA一段代码的分析举个例子讲一下参考代码,下面一段代码实现了如下功能: l 将工作表sheet1中的1-5行、第1列的单元格中的数据进行处理,提取单元格中末尾的数字。 l 并将提取的数字结果存入对应的第2列中。 下面是详细代码,将这段代码复制到编程区中,按工具栏里的倒三角运行即可实现以上功能: Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) '提取数字。编好程序后在工作表里随便双击一个单元格就能执行。 For j% = 1 To 5 '在单元格1-5行提取数字 s$ = Sheet1.Cells(j, 1) '工作表1中将第j行第1列单元格内容存入字符串变量s。$是字符串定义符 s=Trim (s) '去除单元格中的头尾空格 s2$ = '' For i% = Len(s) To 1 Step -1 '%是整形定义符 If InStr('0123456789.', Mid(s, i, 1)) Then '从单元格字符串的最末一个字符朝前开始判断是否为数字 s2 = Mid(s, i, 1) & s2$ '是数字,倒着存入变量s2 Else Exit For '不是数字,退出for循环 End If Next i Sheet1.Cells(j, 2) = s2 '某一个单元格字符串处理完后,结果存入B列 Next j End Sub 全文完。本文只是VBA入门而已,详细的操作技巧请查阅相关书籍。 |
|
来自: 我的人生宝库 > 《电脑(软件应用)》