ImageVerifierCode 换一换
格式:DOCX , 页数:35 ,大小:1.27MB ,
资源ID:2981372      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2981372.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(VBA语言学习.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

VBA语言学习.docx

1、VBA语言学习网友学VBA(1)-写在前面的话各位爱好钻研Office技术的网友,你们好!从今天开始,我将在我的博客中增加一个新的文章类别,即“和网友一起学VBA(VisualBasicfor Application)”,简称“网友学VBA”。我将把它作为一个专门系列,与我博客中的文学系列和税务系列并存,长期地写下去,同网友们一起交流学习心得,分享学习经验,共同提高VBA编程水平。在实践中,VBA在Excel当中应用得最为广泛,也最有价值,能够高效、灵活地扩展Excel的功能,为处理大批量的、复杂的数据带来方便。因此,我们的讨论将以Excel VBA为主要内容,兼顾其他Office组件。我个人

2、认为,修炼Excel高手有三个层次。第一层是能够熟练地制作电子表格,并运用一些常用的、简单的公式进行计算;第二层是能够成功地运用一些高级函数以及Excel自身的高级功能分析数据,进行一些较为复杂的数据处理工作;第三层就是利用VBA技术扩展Excel的功能,对Excel进行二次开发,让它按照我们的意愿去处理相应的工作。通过学习和使用VBA技术,我们会看到Excel的另一片天地,这也是我们之所以要努力修炼到第三层的目的:我们要随心所欲地让Excel老老实实地为我们工作。需要说明的是,我不是在写教科书,所以今后我们交流的内容,将不会以各种概念为主,而会以实例和操作为主,而且介绍的实例也以能解决我们的

3、实际问题为主。在学习过程中,我将参考一些专业书籍,选用一些网络上流行的代码,在此就不一一注明原出处。对其中可能引用的部分经典代码,在此先向原编写者致谢。好了,从现在开始,让我们携手共同走进Office VBA的神奇世界。网友学VBA(2)-什么是VBA我第一次亲密接触VBA时,还在做一种叫“税收会计”的工作。在使用Excel办公时,我对一次又一次的重复任务感到厌倦,就想找到一种能够自动重复任务的办法。很快,我在Excel中发现了“宏”,发现它就是我要的东西,大喜!之后,我又发现了“VBA”,狂喜! 说心里话,我其实不喜欢VBA,所有与编程有关的东西我都不喜欢。但我喜欢VBA能帮我实现高效办公,

4、并且是在我没有编程基础的情况下。专家说:不用编写一行代码,就可以使用VBA。这太好了! 在学习和使用VBA之前,对有些概念的理解,我们是无法避免的,否则,就不会知道自己要做什么、如何做。咱们得明明白白地做事,你可不能嫌我烦。 VBA的全称是Visual Basic for Application,它是微软开发出来的、在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。我们可以用它来创建自定义的解决方案。所谓应用程序自动化,是指通过编写程序让常规应用程序(如Excel、Word、Access等)自动完成工作。 VBA本来是Office中包含的一种用来扩展Office功能的Basic语言,

5、最早出现在Office97中,而且Excel是最早支持VBA的组件。 VBA可以在Office各组件中通用。当你学会了在Excel中使用VBA,就已经具备了在其他Office组件中使用VBA的基本知识。另外,AutoCAD,CorelDRAW等应用程序的新版本中也集成了VBA。 也许有的朋友会问,Excel不是本来就有自动功能吗?如自动求和、自动套用格式、排序、筛选、数据透视等等。但你说的都是一些单步性的工作,是狭义的自动化。而使用VBA,我们可以只发出一个指令(如单击一个按钮),就可以让Excel乖乖地替我们完成剩下的工作:将一个文件中的数据逐条录入到一个工作表中排序删除重复的数据进行求和计

6、算画上表格边框进行页面设置打印输出一系列的工作,很可能就在一瞬间完成!酷吧!难怪有人说,VBA是Excel的“遥控器”。酷是酷,但有两点我得忠告大家:第一点,虽然VBA上手很容易,但也不至于容易到像我们给mm写情书一样随手就来,想成为高手,还须多年磨练啊!(呵呵,写一封让mm动心的情书亦非易事啊!)第二点,我们也不要到处去用VBA,因为一些简单的工作或一次性的工作,还不如手工去完成它,否则,你的代码还没有写完,人家的工作早已完成了,并翘着腿坐在你旁边喝着咖啡鄙视着你呢。所以,VBA还是应用在那些比较复杂、重复性的、劳动量大的工作上,所谓“好钢用在刀刃上”嘛。网友学VBA(3)-在Excel中实

7、现金额数字中文大写在继续深入学习VBA理论之前,我们先来看一个VBA实例。 我们要解决的问题是:在Excel中实现人民币金额中文大写这一功能,即在一个单元格中输入小写金额数字,而在另一个单元格自动显示中文大写金额。 那么Excel有没有提供这种功能呢?先看看再说吧。 打开Excel工作簿,在工作表的A1单元格输入数字100815.96,在工作表的B1单元格中输入公式“=A1”,右击B1单元格,在弹出菜单中点“设置单元格格式”,在出现的对话窗口中点选“数字”标签,在分类列表中选择“特殊/中文大写数字”,这时单元格B1中显示的结果为“壹拾万零捌佰壹拾伍.玖陆”。(图1)看来,Excel中是有中文大

8、写功能的,只是没有显示“元、角、分、整”的功能,不能解决中文金额大写的问题。微软也真是的,做事留一手,这不是明摆着欺负咱们中国人吗?(图1) 那么,我们只能自己解决问题了。 有两种方法可行:一是使用IF函数。这种方法需要使用IF函数多层嵌套才能实现,但是自己看着都晕,容易出错,使用和维护不便,所以我就不作推荐了。另一种方法就是自定义函数,这是我要向大家着重介绍的。 先给这个自定义函数取个名儿,它的中文名叫“大写金额”,英文名叫“dxje()”。呵呵,跟小沈阳学的。 编写函数的代码如下:Function dxje(q) ybb = Round(q * 100) 将输入的数值扩大100倍,进行四舍

9、五入 Y = Int(ybb / 100) 截取出整数部分 j = Int(ybb / 10) - Y * 10 截取出十分位 f = ybb - Y * 100 - j * 10 截取出百分位 zy = Application.WorksheetFunction.Text(Y, DBNum2$-804General) 将整数部分转为中文大写 zj = Application.WorksheetFunction.Text(j, DBNum2$-804General) 将十分位转为中文大写 zf = Application.WorksheetFunction.Text(f, DBNum2$-80

10、4General) 将百分位转为中文大写 dxje = zy & 元 & 整 d1 = zy & 元 If f 0 And j 0 Then dxje = d1 & zj & 角 & zf & 分 If Y = 0 Then dxje = zj & 角 & zf & 分 End If End If If f = 0 And j 0 Then dxje = d1 & zj & 角 & 整 If Y = 0 Then dxje = zj & 角 & 整 End If End If If f 0 And j = 0 Then dxje = d1 & zj & zf & 分 If Y = 0 Then

11、 dxje = zf & 分 End If End If If q = Then dxje = 0 如没有输入任何数值为0 End If End Function 什么?你看不懂!不要紧,以后会懂的,现在只要跟着做就行了。 第一步,复制上面的代码。(意外情况告知:有时候在网页上复制的代码可能含有一些网页特有格式,所以最好先将代码复制到记事本中过滤一下,去掉网页格式,再从记事本中复制干净的代码进行粘贴操作。这我以后就不一一说了。当然,这里应当不存在这个问题。) 第二步,打开创建宏的对话窗口。Excel 2007中是在“开发工具/宏”菜单下,Excel 2003是在“工具/宏/宏”菜单下。在“宏名

12、”中输入“dxje”。(图2)(图2) 第三步,在“宏”对话窗口中,单击“创建”按钮,会打开Visual Basic编辑器(VBE),先将代码窗口中系统自动生成的两行代码清除,再将我们先前复制好的自定义函数代码粘贴上去(图3),然后点VBE菜单“文件/关闭并返回到Microsoft Excel”,返回到刚才的工作表中来。(图3) 当然,Excel2003中我们也可以通过“工具/宏/Visual Basic编辑器/插入/模块”,打开上面的代码窗口。Excel2007我就不赘述了。 第四步,在单元格B1中输入“=dxje(A1)”,即能正确显示中文大写金额数字,大功告成!(图4) 小提示: (1)

13、在“宏安全性”中要设置为“启用所有宏”(或将宏安全级设为低),否则代码不能运行。Excel2007中从菜单“开发工具/宏安全性”进入设置,Excel2003中从从菜单“工具/宏/安全性”进入设置。 (2)如果你使用的是Excel2007,而不是Excel2003,那么在保存文件时要选择“启用宏的工作薄”。我觉得,由于目前Excel2003在实践中仍占主导地位,所以建议您保存为“Excel97-2003工作薄”类型,即文件扩展名只有3位的“.xls”的Excel文件,以免引起兼容方面的麻烦。 (3)如果你想在大写金额前面加上“人民币”三个字,可以这样输入公式:=人民币&dxje(A1)。注意引号

14、必须在英文状态下输入。网友学VBA(4)-VBA、VB、VBS的关系在前面介绍的“中文金额大写”的实例中,自定义函数dxje()的代码就是用VBA语言编写的。当然啰,你要说是用VB语言编写的,我也不反对,因为VB和VBA的编程语句并没有多大区别,它们的关系十分密切。你学会了VB,很可能就学会了VBA。 比较的正统的说法是,VBA是VB(Visual Basic)的一个子集,VBA不同于VB,原因是VBA要求有一个宿主应用程序(如:Word、Excel等)才能运行,而且不能用于创建独立的应用程序;而VB可用于创建独立的应用程序。不过,只要你愿意,你还是可以把应用程序作为一个平台,然后使用VBA技术创建一个自己的、独特的应用程序。比方说,你完全可以用Excel+VBA开发一套小型财务处理系统。 有人将VBA、VB的区别总结为点: 1. VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(Excel等)自动化。2. VB具有自己的开发环境,而VBA必须寄生于已有的应用程序。3. 要运行VB开发的应用程序,用户不必安装VB。因为VB开发出的应用程序是可执行文件(*.EXE),而VBA开发的程序必须依赖于它的“父”应用程序,例如Excel。 . VBA实际上是脚本语言,可以解释执行;VB则需编译才能

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1