码迷,mamicode.com
首页 > 移动开发 > 详细

成都APP软件EXE开发:EXCEL VBA的基本知识和入门引导V2

时间:2020-05-23 16:40:49      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:过程控制   统计   开发   删除   vba   事件   保留   局限性   运行程序   

1. VBA在EXCEL中能解决什么问题
EXCEL很好用,尤其是在数据统计和处理的时候,但是EXCEL本身提供的函数有它自己的局限性,很多特定的功能无法实现,用起来不够灵活,那么EXCEL中嵌入的VBA编程语言就可以解决这个问题,它可以:
? 处理若干单元格中重复的具有同一特征的数据。举个例子,一个单元格里面有字符和数字,现在想只保留单元格中数字,去除其他字符。这个可以用VBA语言中的循环语句+数字识别命令识别单元格中数字,并对其他字符删除。
? 对具有某一特征的多个单元格的数据进行处理。例如,将满足某一特征A的单元格中数据和满足另一特征B的单元格的数据合并或其他操作,存放在另一个位置的单元格组中。
? 其他的只有你想不到没有办不到的应用。
2.VBA怎么使用
VBA一般的开发流程是这样的:
? 准备工作:对待处理的数据进行特征分析,确定处理的目标、怎么干等;
? 打开VBA开发环境;
? 选择操作的对象,如工作表;
? 选择操作对象的动作和响应事件,如双击、选中、右击等;
? 编写事件代码,如对单元格双击后执行什么操作;
如有必要,可以添加人机交互窗体;
? 运行VBA程序;
? 保存和关闭。
2.1使用的前提
? 使用者应当具有一定的编程基础,有VB开发经验最好。
2.2入门介绍和不完全使用步骤
(1)EXCEL VBA开发环境介绍
? 打开VBA开发环境
技术图片
图 1
技术图片
图 2 VBA的编程环境
? 编写代码、添加人机交互界面等
如图 2中的编程区,在里面就可以编写用户代码。
? 编写代码一般先需要选择操作对象。“通用”一般用于全局变量的定义,“worksheet”一般用于工作表的操作;
? 还需要选择动作和响应事件。用于处理对对象进行某种操作之后的响应事件,如双击单元格后执行什么动作,右击单元格之后执行什么操作等。根据提示的助记符单词应该大致知道是什么动作事件。
事件选择完成后,会弹出一段子过程定义段,在定义段内编写代码即可。
如有需要,也可以添加人际交互的窗体,用于运行过程控制、输入参数、显示参数等功能。

技术图片
技术图片
图 3 添加人机交互窗体
添加了窗体和控件之后,就可以像VB那样子编写程序,如:
? 按键控件的操作。点击按钮控件,编写按键动作事件发生后执行的操作的程序等。
? 文本框的操作。文本框有输入和输出的功能,根据需要编写相应的程序。
? 其他控件的使用方法不再详述。
? 运行和保存
工具栏上有个倒三角按钮,点击它就可运行程序,也可以点击菜单栏[运行],里面有运行按键,功能一样。
技术图片
图 4
技术图片
图 5
保存和其他文件的操作方式一样,可以点击菜单栏文件/保存。
如果要保留EXCEL文件中的VBA代码,一般需要启用宏,并保存为.XLSM(启用了宏的工作表)格式的文件。
启用宏的方法:
? 点击EXCEL文件的左上角[开始]菜单;
? 点击[EXCEL选项]/[信任中心]/[信任中心设置]/[宏设置],再进行如下的启用宏的设置;
技术图片
图 6 启用宏的设置
设置完成后点击“确定”按钮,保存关闭后再打开就可以了,宏已经被启用了。
注意:如果保存文件的时候已经运行了VBA代码,那么下次打开EXCEL文件时它会自动进入执行状态,假如没有的话再次打开VBA开发界面,点击上方的倒三角运行按钮就可以运行程序了。
(2)EXCEL VBA一段代码的分析
举个例子讲一下参考代码,下面一段代码实现了如下功能:
? 将工作表sheet1中的1-5行、第1列的单元格中的数据进行处理,提取单元格中末尾的数字。
? 并将提取的数字结果存入对应的第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入门而已,详细的操作技巧请查阅相关书籍。

成都APP软件EXE开发:EXCEL VBA的基本知识和入门引导V2

标签:过程控制   统计   开发   删除   vba   事件   保留   局限性   运行程序   

原文地址:https://www.cnblogs.com/yonkotech/p/12942764.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!