vba代码编程800例pdf,vba编程例子

http://www.itjxue.com  2023-01-17 03:28  来源:未知  点击次数: 

《ExcelVBA常用代码实战大全》pdf下载在线阅读,求百度网盘云资源

《Excel VBA常用代码实战大全》(袁竹平)电子书网盘下载免费在线阅读

资源链接:

链接:

提取码:h8h0

书名:Excel VBA常用代码实战大全

作者:袁竹平

豆瓣评分:7.6

出版年份:2010-7

页数:374

内容简介:《Excel VBA常用代码实战大全》重点强调实践性,旨在帮助Excel初学者和有一定ExcelVBA编程基础、希望进一步提高的读者掌握VBA编程设计的技巧。全书精选150个典型范例,近245个技巧,以实用为主,知识点针对性强,并逐层对代码辅以深入浅出地剖析,让读者通过范例的学习,快速将ExcelVBA编程应用到实际生活和工作中。

《Excel VBA常用代码实战大全》主要介绍VBA常用对象的应用技巧、控件及用户窗体的应用技巧、对话框的应用技巧、函数的应用技巧,使用VBA操作文件等技巧,最后介绍了制作员工花名册、收据打印系统、员工考勤系统三个综合实例。

《Excel VBA常用代码实战大全》内容丰富、图文并茂,适合初步掌握VBA的基本知识,但需要进一步提高编程能力的初学者,以及希望通过VBA提高工作效率的各类从业人员。也适合各大、中专院校相关专业师生和企业、相关单位的培训班学员阅读。

vb.net获取excel页面高度

1 打开Excel dim myexcelas new Excel.Application() myexcel.visible=true

2 添加新的工作簿myexcel.Workbooks.add()

3 设定第二个工作表为活动工作表myexcel.worksheets(2).Acivate()

4 打开指定的Excel文件myexcel.workbooks.open(“c:\my.xls”)

5 显示Excel窗口myexcel.visible=true

6 更改Excel的标题栏myexcel.caption=“欢迎,欢迎!”

7 为Excel的单元格赋值myexcel.cells(1,4).value=100 此语句使Excel当前工作表的第一行第四列,即D1单元格等于100, 也可以这样写: myexcel.Range(“D1”).value=100

8 设置指定列的宽度(单位:字符个数)myexcel.ActiveSheet.colums(1).columnwidth=20 设定当前工作表第1列的宽度为20

9 设置指定行的高(单位:磅)myexcel.ActiveSheet.rows(1).rowHeight=1/0.035 1磅 =0.035厘米设置第1行的高度为1CM

10 插入分页符 myexcel.Activesheet.rows(20).pagebreak=1在第20行前插入分页符

11 删除分页符myexcel.Activesheet.columns(20).pagebreak=0 在第20列前删除分页符

12 指定边框线的宽度myexcel.Activesheet.range(“B3:D3”).borders(1).weight=3 其中borders参数指定单元格边框的位置:1:左 2:右 3:顶 4:底 5:斜\ 6:斜/

13 指定边框线条的类型 myexcel.Activesheet.range(“B1:D3”).borders(2).linestyle=1此语句将当前工作表的B1:D3单元格的右边框设置为实线 linestyle参数: 1:细实线 2:细虚线 3:点虚线 4:双细实线

14 设置页脚myexcel.activesheet.pagesetup.centerfooter=“第p页” 注意:设置页眉页脚时要保证计算机上装有打印机,否则出错!

15 设置页眉myexcel.activesheet.pagesetup.centerfooter=“第p页”

16 设置页眉到顶断距离为2cmmyexcel.Activesheet.pagesetup.Headermargin=2/0.035

17 设置页脚到底端距离为2cmmyexcel.Activesheet.pagesetup.Footermargin=2/0.035

18 设置顶边边距为2cmmyexcel.Activesheet.pagesetup.topmargin=2/0.035

19 设置底边边距为2cmmyexcel.Activesheet.pagesetup.Bottommargin=2/0.035

20 设置左边边距为2cmmyexcel.Activesheet.pagesetup.Leftmargin=2/0.035

21 设置右边边距为2cmmyexcel.Activesheet.pagesetup.Rightmargin=2/0.035

22 设置页面水平居中myexcel.activesheet.pagesetup.CenterHorizontally=true

23 设置页面垂直居中myexcel.activesheet.pagesetup.Centervertically=true

24 设置页面纸张大小 (1,窄行8.511 ;39 ,宽行1411) myexcel.activesheet.pagesetup.papersize=1

25 打印单元格网格线 myexcel.activesheet.pagesetup.PrintGridlines=true

26 复制整个工作表 myexcel.activesheet.Usedrange.Copy

27 复制指定区域 myexcel.activesheet.range(“a1:b5”).Copy

28 粘贴 myexcel.worksheets(“sheet2”).range(“A1”).PasteSpecial

29 在第2行前插入一行 myexcel.activesheet.rows(2).Insert

30 在第2列前插入一列 myexcel.Activesheet.Columns(2).Insert

31 合并 C4:D4 单元格 myexcel.Activesheet.Range(“C4:D4”).Merge()

32 自动调整第2列列宽 myexcel.activesheet.Columns(2).AutoFit

33 设置字体myexcel.Activesheet.cells(2,1).font.name=“黑体”

34 设置字体大小myexcel.Activesheet.cells(2,1).font.size=25

35 设置字体为斜体 myexcel.Activesheet.cells(2,1).font.Italic=true

36 设置字体为粗体 myexcel.Activesheet.cells(2,1).font.Bold=true

37 清除单元格内容myexcel.activesheet.cells(2,1).ClearContents

38 打印预览工作表myexcel.Activesheet.PrintPreview

39 打印工作表 myexcel.Activesheet.Printout

40 工作表另存为myexcel.ActiveWorkbook.saveas(“C:\book2.xls”)

41 放弃存盘 myexcel.ActiveWorkbook.saved=false

42 关闭工作簿 myexcel.Workbooks.close

43 退出 Excel myexcel.quit

44 纸张横向:myexcel.activesheet.PageSetup.OrientaTion=2(1纵向)

45 单元格居中:cells(2,1).HorizontalAlignment=Excel.XlHAlign.xlHAlignCenter 水平方向cells(2,1).VerticalAlignment=Excel.XlVAlign.xlVAlignCenter 垂直方向

打开CSDN APP,看更多技术内容

VB调用Excel软件实现打印预览功能

摘要:VB源码,报表打印,打印预览VB调用Excel软件实现打印预览功能,可以插入折线图,VB打印预览功能示例源码,分享给大家参考。

用vb操作EXCEL打印报表

最近使用vb来打印报表,打印出来的EXCEL一直无法上传到ftp 反复多次问题都没解决, 200 PORT command successful. Consider using PASV. 问题出在这,由于win10的防火墙的原因,关闭防火墙后问题得到解决. 转载于:...

继续访问

VB操作excel 格式设置及打印页面设置(精简)

langue:VB Set ExcelApp = CreateObject("Excel.Application") ’创建资源,建立连接 Set ExcelBook = ExcelApp.Workbooks.Open(“d:\pipo\index.htm") Set ExcelSheet = ExcelBook.Worksheet...

继续访问

vb.net excel操作:填充人事档案表并打印

节选自:《Visual Basic.Net 循序渐进》【例 21.7】【项目:code21-007】填充人事档案表并打印。 本例使用到的Excel文件为:职员信息登记表.xlsx,如下图所示: 图21-10 职员信息登记表 窗体设计如下图所示(注意:为了演示方便,已经填充了数据): 图21-11 窗体设计 在本例中还需要掌握的知识: 1、插入图片到指定位置 Worksheet.Shapes.AddPicture(Filename, LinkToFile, SaveWithDocumen

继续访问

vb.net操作Excel常用命令

转载: 首先,须在项目里引用: 添加引用-Com-Microsoft Excel 9.0 Object Library (这是EXCEL2000) 1 打开Excel: dim myexcel as new Excel.Application() myexcel.visib...

继续访问

vb.net 如何实现报表打印_Excel如何实现分类别打印?创建组轻松实现

有朋友咨询个关于Excel打印数据问题,他的需求是这样的:下表中是某公司人员信息表,现在领导要求将表格分部门打印出来,每位员工核对个人信息并签字。需求很明确,就是将相同部门的人员打印到一张纸上。打印很简单,难点在于如何按每个部门去打印?如果部门较少的话可以将不同部门复制到不同插页中,再进行打印;但是如果部门较多的话,这种办法实在不可取;有小伙伴表示可以利用VBA技术将部门拆分到各个插页,在进行打印...

继续访问

最新发布 vb.net 教程 11-1 打印组件 3 PageSetupDialog

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 本节谈谈另外一个有关打印的对话框:PageSetupDialog,页面设置对话框 实际我们是通过这个对话框获得PageSetting,关于PageSetting在上一节有部分介绍,请参看 vb.net 教程 11-1 打印组件 PrintDialog 2 注意的是,使用PageSetupDialog需要绑定一个PrintDocument,在PageSetupDialog的Document属性处

继续访问

VB.NET使用EXCEL常见操作

首先,须在项目里引用: 添加引用Microsoft.Office.Interop.Excel Imports Excel = Microsoft.Office.Interop.Excel 1 打开Excel: Dim myexcel as new Excel.Application() myexcel.visible=true 2 添加新的工作簿: myexcel.Workbooks.ad

继续访问

【VB Excel】VB 操作Excel基本步骤

VB操作EXCEL,实现数据读取 1、定义Excel操作变量 Dim objExcelFile As Excel.Application Dim objWorkBook As Excel.Workbook Dim objImportSheet As Excel.Worksheet 2、打开Excel进程,并打开目标Exc...

继续访问

vba代码编程800例_如何设置Excel打印格式,学会这个VBA对象就可以随心所欲

NO.1 Excel如何设置打印格式使用vba可以做打印格式处理,如何做一个漂亮的打印页面,不外乎要设置打印表格的边框、版式、页眉、页角等等。那么怎样设置这些格式呢?NO.2 PageSetup对象vba编程用到Pagesetup对象,对表格打印进行设置。PageSetup对象有许多属性,下面图片里列出了大部分常用的属性,可以对照进行设置。具体方法下面举个例子来展示一下最终效果。PageSetup...

继续访问

vb.net操作excel文件

[转自] vb.net操作excel文件 要求将数据显示在Excel表中,并且要设好数据格式。虽说如此,真正实现了自己的功能,还是费了不少时间。相信还是有很多与我相似的人需要实现这种功能。那就做个小结吧。不妥之处,请指正哦。 1.添加引用–com—microsoft excel 11.0 object library 2在需要访问excel的过程中定义 dim exapp as excel.a

继续访问

VB.net使用PrintForm打印窗体

在VS2010中内置了了一个PowerPacks的扩展包,果然很好用啊,可以直接打印窗体内容 先从"工具箱"中拖一个PrintForm到设计好的窗体中 然后在窗体里加了个打印的按钮,对应代码如下 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.

继续访问

热门推荐 开源:.NET环境下有关打印页面设置、打印机设置、打印预览对话框的实现与应用(2)

!--google_ad_client = "pub-0022674553583619";google_ad_width = 728;google_ad_height = 90;google_ad_format = "728x90_as";google_ad_type = "text_image";google_ad_channel ="";google_color_

继续访问

vb.net 设置打印纸张与页边距_机关公文格式设置规范(最新整理版)

本方法根据《党政机关公文格式国家标准》(GB/T9704-2012)制定。具体内容如下:一、办公软件要求适用于微软OFFICE—WORD文字处理软件。二、页面设置1.选择“文件”——“页面设置”选择“页边距”附签,上:3.7厘米,下:3.5厘米,左:2.8厘米,右:2.6厘米。2.选择“纸张”附签,“纸张大小”设成“A4”。3.选择“版式”附签,将“页眉和页脚”设置成“奇偶页不同”,在该...

继续访问

VB.NET EXCEL 操作

VBA常用技巧代码解析

VBA概述:VBA是Visual Basic For Application的缩写,是VB在office中的运用。是基于Visual Basic For Windows发展而来的,VB For Windows是Microsoft于1992年推出的开发Windows应用程序的程序设计语言,由于基语法简单,易学易用,所以深受用户的欢迎。而VBA和VB For Windows大体相似。

在Office2000之前,VBA在Word,Excel,Access等Office系统软件中的运用有些有同,但是到Office2000就统一起来了。

Excel是第一个包含有VBA的应用程序,自Office2000以后,Eexel,Word,PowerPoint,Access中已经有了统一标准的宏语言VBA,其中Excel和Access的VBA最为成熟。

在Excel中VBA程序即可以存放有.xls中,也可以单独以文本形式存放。对VBA的学习,用户首先必须VB有一定的了解(不过不必很专业,毕竟经常用Excel的用户一般是办公人员,不可能是专业编程人员),然后结合宏记录器学习。因为,宏记录器可以记录宏,用户可以非常清楚了然VBA的很多知识。另外,如果不是功能很强大的VBA程序,那么用宏记录器就足够了。打开密码记录器的方法,通过“工具->宏->录制新宏”。另外,用户可能用“工具->宏->宏...”来管理宏。用“工具->宏->VB 编辑器”或Alt+F11可以打开VB编辑器,在VB编程器,可以很方便地整个VB工程进行管理,可以方便地编写VBA代码,另外,用户可以再点击Alt+F11切换到Excel窗口。

VBA的使用过程:

1、创建一个Excel文件。

2、创建一个控件,然后双击控件或是右击该控件,点击“查看代码”,就可以对该控件的某个事件,如click,keydown等。

进行编写执行代码了。创建控件的方法是,点击“视图-工具栏-控件工具箱”,打开“控件工具箱”栏,然后就可以直接拖动某个控件到Excel单元格中去。在Excel中窗口,添加的控件一般是处于执行状态的,如果要对这个控件进行编辑,除了第一次建立的时候可以对它进行属性编辑外,打开“控件工具箱”,也可以使控件处于编辑状态,如果还不行,可以再添加一个控件,然后已有的控件绝对会处于编辑状态。当然,对控件修改完毕后,别忘了删除刚才新添加的没有用的控件。在编辑状态中,你可以右击该控件,点击“属性”,那么就可以打开属性窗口,在这个窗口里,你可以很方便的对这个控件的名字,标题,大小等属性进行编辑。

3、手动或用宏记录器对该控件的某个事件进行编码。宏记录器简单易用,不过强大的功能还是必须手动编写VBA。

VBA对象介绍:

编写VBA代码的最关键在于灵活运用VBA对象,对这些VBA对象的属性或方法进行操作。另外,你也可以创建自定义函数,来对某些操作进行封装。既然是VBA,编码风格当然和VB相同,如果会VB,那么只要对VBA的对象比较了解,就可以编写功能强大的VBA程序;同样,如果不会VB,那么,只需要了解VBA的对象就够了,因为它比较简单易学。

以下分别讨论VBA各对象对其属性与方法:

在一些可以包含其他对象的窗口对象中,有几个特殊的属性,其属性值是当前活动对象,对它们,可以直接引用。

表1 一些特殊的属性

对象名 含义

ActiveWorkbook 当前工作簿,即如果你打开了几个Excel文件,那么你当然正在编辑的Excel文件即ActiveWorkbook

ActiveSheet 当前工作簿中的当前工作表,即当前编辑的Excel文件中正在编辑的工作表

ActiveCell 当前工作表中活动单元格

ActiveChart 当前工作簿中的活动图表

Selection 当前被选定的对象

下面详谈各对象及它们的属性和方法

一、Application对象

此对象指Excel应用程序的工作环境。

<一>属性

1.Caption属性

含义:Excel应用程序标题栏显示的文本。

举例:Application.caption=“船员管理系统”,如赋值Empty,则恢复Excel默认的标题栏。

2.Cursor属性

含义:Excel中鼠标的形状。

表2 Cursor属性

属性值 鼠标形状

xlDefault 缺少型值,鼠标呈缺少形状

xlWait 等待型值,鼠标呈不断翻转的沙漏形状

xlNorthwestArrow 箭头型值,鼠标呈标准箭头形状

xlIBeam 文本型值,鼠标呈“I”字形以等待用户输入文本

操作:Application.Cursor=xlWait等。

3、DisplayAlerts属性

含义:用以确定是否显示系统的应用提示和警告信息,如果不想显示,则把些属性设为false,反之亦然。

4、DisplayFormulaBar属性

含义:用以确定是否显示公式编辑栏

5、DisplayScrollBars属性

含义:用以确定是否显示Excel的滚动条

6、DisplayStatusBar属性

含义:用以确定是否显示Excel的状态栏

7、EnableCancelkey属性

含义:用以确定是否允许用户中断正在执行着的VBA程序。缺省情况下,在VBA程序执行过程中,用户按下Ctrl+Break能够中断VBA程序的执行。此时此属性即值为xlInterrupt。若要禁止中断VBA程序,由赋值为xlDisabled;若需要VBA执行过程中遇到错误进中止,由赋值为xlErrorHandler

8、ScreenUpdating属性

含义:用以确定是否显示VBA程序的中间运算结果。

9、StatusBar属性

含义:设置状态栏的文本

10、ActiveWorkbook属性

含义:如表1介绍。

11、ActiveSheet

含义:如表1介绍。

12、ActiveCell属性

含义:如表1介绍。

13、ThisWorkBook属性

含义:用以返回正在执行着VBA程序所在的工作簿对象。这不是当前工作簿。例如有多个工作簿打开时,ActiveWorkbook属性返回当前工作簿对象,ThisWorkbook返回正在运行着VBA程序所在工作簿对象。

14、PathSeparator属性

含义:返回文件文件路径分隔符“\”,该属性是一个只读属性。

举例:Dim strPath as String

strPath=Application.ThisWorkbook.PathApplication.PathSeperator

Workbooks.Open strPath"myExcel.xls"

15、UserName属性

含义:设置当前用户名称。缺省用户是由Excel选项对话框的“常规”选项卡中“用户姓名”决定的。用户可以从“工具”菜单中选择“选项”命令来打开选项并在“常规”选项卡的“用户姓名”文本框中重新设置缺省的用户名称。

<二>方法

1、Calculate方法

含义:对Excel打开的工作簿中所有的公式进行重新计算。

2、Goto方法

含义:选择工作簿中的一个Range对象或一个VBA过程,格式如下:

Application.Goto Reference,Scroll

Reference参数表示Goto方法的目的地,Scroll参数若为True,滚动条滚动以使Range对象出现在工作簿窗口左上角,为False,当前工作簿窗口不属性变化。缺省值为Galse

举例:Application.Goto Range("C3"),True

3、InputBox方法

含义:用于打开一个输入对话框,允许用户输入数据。格式如下:

Application.InputBox(prompt,title,left,top,helpFile,helpContextID,type)

prompt参数 用于设置输入对话框的提示信息

title参数 用于设置输入对话框的标题文字

default参数 用于设置输入对话框的缺省输入值

left和top参数 用于设置输入对话框左上角的坐标值

helpFile参数 用于设置输入对话框在线帮助的名称

helpContextID参数 用于设置输入对话框在线帮助主题的上下文标识号

type参数 用于设置输入对话框输入数据的类型。缺省情况下,为文本型

举例:UserValue=Application.InputBox("请输入数据","数据输入",Type:=7)

4、Onkey方法

含义:按下某个或组合键时执行一段VBA代码。自己尝试一下就知道了,也可看一下VB编辑器的提示(即输入Applicatio.Onkey后,VB编辑器弹出的下拉提示。

二、Workbooks对象集

当前所有打开的工作簿对象的集合

一属性

1、Count属性,只读,返回Excel打开的工作簿数

二方法

1、Add方法,向工作簿对象集中一个新的工作簿,相当于“文件-新建”命令。格式如下:

Workbooks.Add Template

2、Open方法,打开一个指定的工作簿。格式看一下VBA编辑器中的提示就行,太累了,不想写得这么全。

3、Close方法,关闭一个工作簿文件

三、Workbook对象

代表一个独立的工作簿文件

一属性

1、ActiveSheet属性,返回当前工作簿中的活动工作表对象

2、Author属性,返回或设定工作簿的作者姓名,由此确定工作簿的所有者

3、Saved属性,用于瓢工作簿文件是否做过修改。

二方法

1、Activate方法,用于霜一个工作簿为当前活动工作簿,如,Workbooks("myOffice.xls").Activate

2、Close方法,用于关闭指定的工作簿

3、Save方法,用于保存指定的工作簿

4、SaveAs方法,用于另存为指定的工作簿

四、Worksheets对象集

代表当前工作簿所有的工作表(Worksheet)的集合。

一属性

1、Count属性,返回当前工作簿中的的工作表的数量

二方法

1、Add方法,向工作表对象集中添加一个新的工作表对象,格式如下:

Worksheets.Add Before,After,Count,Type

Before和After参数指哪一个工作表之前或之后插入新工作表。取值为Worksheet

如:Worksheets.Add Before:=Worksheets("Sheet2"),则相当于在Sheet2工作表之前插入了一个新的工作表

五、Worksheet对象

代表工作簿一个独立的工作表。

获取某个工作表,可以用Worksheets("办公费用"),也可以用Worksheets(3)之类的语句

一属性

1、Name属性,设置或返回工作表对象的名称

2、Visible属性,确定是否隐藏某个工作表

二方法

1、Calculate法,对指定的工作表中的所有公式进行重新计算

2、Copy方法,用于复制指定的工作表,并放置在指定的位置,实际是一个复制与粘贴并重的函数,

格式:Worksheet-Object.Copy Before,After

如Worksheet("Sheet2").Copy After:=Worksheets("办公费用"),相当于把Sheet2工作表复制,并把它放置在名为“办公费用”的工作表之后

3、Move方法,移动指定的工作表并放置在指定的位置,用户同Copy方法,区别只天于复制与剪切之不同

4、Delete方法,无参数删除指定的工作表,如Worksheet("Sheet2").Delete

5、Cell方法,获取指定工作表指定行列的某个单元格

格式:Worksheet-Object.Cells(Row,Col),Row,Col为整型,行列值都从1开始

如Worksheet("Sheet2").Cell(1,1),相当于获取Sheet2工作表的第一行第一列的单元格

五、Range对象

代表一个半桥区域,可以由多个半桥组成,也可是由一个单元格组成。

引用单元格可用以下两种方法:

一是使用单元格引用,如Range("A1"),Range("A1:C3")

二是使用单元格区域名称,如Range("myRange")。

一属性

1、FormulaR1C1属性,为指定的单元格或单元格区域建立和存储公式,

如Range("C5").FormulaR1C1="=SUM(R[-4]C:R[-1]C)"

2、Value属性,为指定的单元格或单元格区域赋值,如为多个单元格,则都赋为同样的值

3、Cell属性,以指定的单元格为苦战来描述被引用的单元格,把指定的单元格视为第1行第1列

格式:Range-Object.Cells(Row,Col)

4、Offset,以指定的单元格为苦战来描述被引用的单元格,把指定的单元格视为第0行第0列

格式:Range-Object.Cells(Row,Col)

5、Name属性,返回或设定指定的单元格或单元格区域的名称,然后在VBA中,可以直接用名称为引用它

6、Count属性,返回指定的单元格区域中包含的单元格的数目,只读

7、CurrentRegion属性,返回以某个单元格为基点的存储有数据的一个连结的单元格区域

二方法

1、Select方法方法,用于选择指定的单元格区域,执行后,该单元格区域左上角的第一个单元格成为活动单元格

如Range("A1:C3").Select,Range("A1:C3,D5:E6,A8:E8).Select

2、Activate方法,用于选择指定的单元格并指定其成为活动单元格,当然只有该单元格区域左上角的第一个单元格成为活动单元格。

3、AutoFit方法,调整选定的单元格区域所在行和列的行高与列宽,使其行高与列宽自动设定的最佳的高度与宽度。

如:Range("A4").CurrentRegion.Select

Selection.Rows.AutoFit

4、Clear方法,清除指定的单元格区域的内容,格式和批注,相当于“编辑->清除->全部”

如:Range("A4:C5").Clear

5、ClearContents方法,清除指定的单元格区域的内容,相当于“编辑->清除->内容”

6、ClearFormats方法,清除指定的单元格区域的内容,相当于“编辑->清除->格式”

7、ClearComments和ClearNotes方法,清除指定的单元格区域的内容,相当于“编辑->清除->批注”

8、Copy方法,将指定单元格区域中的数据库复制到剪贴板或指定的目的单元格区域中

9、Cut方法,将指定单元格区域中的数据库剪切到剪贴板或指定的目的单元格区域中

10、PasteSpecial方法,用于将剪贴板中复制或剪切下来的单元格区域中的数据库有选择地粘贴到指定的目的单元格区域中

格式:Range-Object.PasteSpecial Paste,Operation,ShipBlanks,Transpose

Paste参数规定了选择体积类型的数据进行粘贴,如公式,内容,批注等,具体取值可参考VB编辑器中的提示

excel vba常用代码

Visual Basic for Applications(简称VBA)是新一代标准宏语言,是基于Visual Basic for Windows 发展而来的。它与传统的宏语言不同,传统的宏语言不具有高级语言的特征,没有面向对象的程序设计概念和方法。而VBA 提供了面向对象的程序设计方法,提供了相当完整的程序设计语言。VBA 易于学习掌握,可以使用宏记录器记录用户的各种操作并将其转换为VBA 程序代码。这样用户可以容易地将日常工作转换为VBA 程序代码,使工作自动化。?[1]

数据类型

基本数据类型

即Primary Type Data,下述列表的括号内为字节数:

Byte?(1):无符号数类型,取值范围0-255

Boolean?(2)

Integer(2)

Long?(4)

Single?(4)

Double?(8)

Currency?(8)

Decimal?(14)

Date?(8)

String

Object?(4)

Variant?(根据分配确定)?[2]

自定义的数据类型

相当于C语言的struct,例如:?[2]

Type 自定义类型名 元素名 As 类型 … [元素名 As 类型] End Type

数组

Option Base 0 :数组索引值从0开始?[2]

Option Base 1 :数组索引值从1开始

Dim MyArray(10) :声明一个数组变量,10是最大的可用的数组索引值

MyArray(5) = 101 :给数组的元素赋值

Dim Data(10,5) :声明一个二维数组变量

Data(1,1) = "A001" :给数组元素赋值

Dim cArr(-11 To 20, 1 To 3) As String :声明一个数组,定义数组索引值的上下界

Dim dArr() As String :声明动态数组

ReDim dArr(0 To 5, 1 To 2) :改变动态数组的尺寸默认把原数据清除。如果保留原来的数据,必须加上参数

Preserve:使用Preserve参数时只能改变最后一位的大小

If UBound(vTemp) = -1 Then:判断数组变量vTemp是否为空数组

End If Erase MyArrar, Data Erase语句清除数组元素,释放变量占用的空间?[2]

常量

编辑

系统定义常量

系统定义常量有3个:True、False和Null。?[4]

固有常量

固有常量是编程时引用的对象库定义的常量。所有固有常量都可以在宏或VBA代码中使用。通常,固有常量通过前两个字母来指明定义该常量。来自VB库的常量则以“vb”开头。来自Access的常量以“ac”开头。可以使用对象浏览器来查看所有对象库中的固有常量列表。?[4]

在VBA中,常量的数据类型有整型、长整型、单精度型、双精度型、字节型、货币型、字符型、日期型和逻辑型。一个整型数据就是一个整型常量,一个长整型数据就是一个长整型常量。例如,12%、-1%是整型常量,32768、10000000是长整型常量,-2.5 1、3.14是单精度实型常量,3.1415926#是双精度实型常量,China、Shanghai是字符型常量,#07/13/2001 11:45PM#是日期常量,由符号 “ # ” 将字符括起来。?[4]

符号常量

可以自行定义的常量即符号常量,必须先定义,后使用。可见,需要声明的常量都是符号常量。?[4]

基本语法格式:

1? ?[?Publicr/?Private]?Const??常量名[As??类型]=表达式? ?

如:Global Const?符号常量名称 = 常量值?[4]

语句功能:

定义一个符号常量,并将指定表达式的值赋给符号常量。?[4]

语句说明如下:?[4]

1)“常量名”指定符号常量的名字。符号常量名可以由字母、数字和下画线组成,但只能以字母开头,不能含有空格。?[4]

2)“表达式”指定符号常量的值。该表达式通常由数值型、字符型、逻辑型或日期型数据以及各种运算符组成,但在表达式中不能出现变量和函数。?[4]

3) public用来表示这个常量的作用范围是整个数据库的所有模块。?[4]

4) private则表示这个常量只在使用该声明常量语句的模块中起作用。?[4]

说明:

1)除用户定义的符号常量外,VBA还提供了许多符号常量,我们可以直接使用。?[4]

2)对数码比较长,并且在程序中多次使用的常量,通常使用符号常量代替。运行程序时,系统自动把程序中的所有符号常量换为赋给它的值。?[4]

变量

编辑

与常量一样,变量也是一块内存空间,用于保存程序运行过程中可能变化的数据。变量的名称是用户定义的一个标识符。?[5]

在代码中需要使用该变量时,只需引用相应的标识符即可,而不用管变量当前的值具体是什么。?[5]

声明

与用户自定义的常量相似,变量在使用之前都需要声明,在VBA中声明变量的语法格式有以下几种:?[5]

关键字变量名 AS?数据类型

关键字变量1,变量2 ... 变量n AS?数据类型

关键字变量1 AS?数据类型,变量2 As?数据类型, ... ,变量n AS数据类型

在第二种语法格式中, “变量n”的数据类型为AS关键字后定义的数据类型,而“变量1”、“变量2”、…的数据类型为变体型。?[5]

在VBA中,可用Dim、Private、Public和Static这4个关键字来声明变量,使用不同关键字声明的变量其含义也有所不同。?[5]

◆ 利用Dim关键字声明变量:Dim关键字主要用来在内存中分配一块空间,并为该空间命名,是VBA中声明变量最常用的关键字。使用Dim关键字声明的变量只能在当前过程或模块中使用。?[5]

◆ 利用Private关键字声明变量:Private关键字用于在类模块中声明一个私有变量,它只能在当前的类模块中使用。当定义变量的位置同处于类模块中时,其使用效果与使用Dim关键字定义的变量相同。?[5]

◆ 利用Public关键字声明变量:利用Public关键字声明的变量可以在程序的任何地方调用,而与声明变量的位置无关。?[5]

◆ 利用Static关键字声明变量:Static关键字用于声明静态变量,即变量的值在整个代码运行期间都能被保留。?[5]

赋值

变量在使用时还需要对其进行赋值。在VBA中对变量进行赋值可通过 “ = ” 符号或 “ Set ” 关键字进行。通过 “ = ” 符号对变量赋值的语法格式有以下几种。?[5]

变量名=数据

变量1=变量2 运算符 数据

变量1=变量2 运算符 变量3 … 运算符 变量n

如果在定义变量时指定了变量的数据类型,则为变量所赋的值也必须是该数据类型的值。如果变量定义为Integer类型,而在赋值时却给了变量一个String类型的数据,则在编译运行的过程中将弹出错误弹框。?[5]

运算符

编辑

运算符是在程序中执行计算功能的某些特殊符号,它是程序代码的重要组成部分。在程序代码中,运算符不能单独使用,必须与其操作数共同组成表达式后才具有运算意义。VBA中的运算符包含算术运算符、连接运算符、比较运算符和逻辑运算符等。?[4]

算术运算符

算术运算符主要用于执行四则运算,仅用算术运算符连接起来的表达式称为算术表达式。算术运算符及其作用与示例如表所示。?[5]

例子

名称

结果

-$a

? ?

取反

? ?

$a 的负值。

? ?

$a + $b

? ?

加法

? ?

$a 和 $b 的和。

? ?

$a - $b

? ?

减法

? ?

$a 和 $b 的差。

? ?

$a * $b

? ?

乘法

? ?

$a 和 $b 的积。

? ?

$a / $b

? ?

除法

? ?

$a 除以 $b 的商,允许小数。

? ?

$a \ $b ? ?除法 ? ?$a 除以 $b 的商,结果取整。 ?

$a Mod $b

? ?

取余

? ?

$a 除以 $b 的余数

? ?

注意:

在执行算术运算时,运算符两侧操作的数据类型必须相同,否则会出现“类型不匹配”的错误提示。当“+”运算符左右两侧都是字符串类型的操作数时,执行的是连接运算,如表达式“"Pass+"word"的计算结果为字符串“ PassWord ”。?[5]

连接运算符

连接运算符的作用是将运算符两侧的操作数连接成一个数,其操作数的数据类型通常都为String类型。VBA中的连接运算符有“”和“+”两种,由于使用“+”执行连接运算时,容易与加法运算混淆,所以通常都采用“”进行连接运算。?[5]

比较运算符

比较运算符可以对运算符两侧的操作数执行比较运算,其返回结果为Boolean类型的True或False。比较运算符的操作数通常为具体的数值,当操作数为字符串或其他符号时,是根据该符号的ASCII码进行比较的。VBA中的比较运算符及其作用与示例如表所示。?[5]

例子

名称

结果

$a = $b

? ?

等于

? ?

TRUE,如果 $a 等于 $b。

? ?

$a $b

? ?

不等

? ?

TRUE,如果 $a 不等于 $b。

? ?

$a $b

? ?

小于

? ?

TRUE,如果 $a 严格小于 $b。

? ?

$a $b

? ?

大于

? ?

TRUE,如果 $a 严格大于 $b。

? ?

$a = $b

? ?

小于等于

? ?

TRUE,如果 $a 小于或者等于 $b。

? ?

$a = $b

? ?

大于等于

? ?

TRUE,如果 $a 大于或者等于 $b。

? ?

逻辑运算符

逻辑运算符用于对运算符两侧的操作数执行逻辑运算,参与逻辑运算的操作数本身可以是逻辑表达式(表达式的最终结果为True或 False),也可以是算术表达式(表达式的最终返回值为0或非0)。?[5]

在逻辑运算中,数值0与逻辑值 False相同,表示逻辑假;非0数值与True相同,表示逻辑真。逻辑运算符及其含义与示例如表所示。?[5]

例子

名称

结果

$a and $b

? ?

And(逻辑与)

? ?

TRUE,如果 $a 与 $b 都为TRUE。

? ?

$a or $b

? ?

Or(逻辑或)

? ?

TRUE,如果 $a 或 $b 任一为TRUE。

? ?

$a xor $b

? ?

Xor(逻辑异或)

? ?

TRUE,如果 $a 或 $b 同位相异。

? ?

Not(12)

? ?

Not(逻辑非)

? ?

TRUE。

? ?

(12) Eqv (12)

? ?

两个操作数同为假,返回False;两个操作数同为真,返回True;两个操作数一真一假,返回False

? ?

TRUE。

? ?

21 Imp 35

? ?

运算符左右同为真,返回True;左右同为假,返回True;左真右假,回返 False;左假右真,返回True

? ?

TRUE。

? ?

语法结构

编辑

if 语句

1? ?if?条件1?then???语句1elseif?条件2?then???语句2elseif?...????...else???语句nend?if? ?

Select Case 语句

1? ?Select?Case?表达式???Case?表达式列表1???????语句1???Case?表达式列表2???????语句2???????...???Case?表达式列表n???????语句nEnd?Select?? ?

其中的表达式列表可以为:?[5]

表达式?例: "A"

用逗号分隔的一组枚举表达式例:2,4,6,8

表达式1 To?表达式2 例:60 To 100

Is?关系运算符表达式 例:Is 60

Do...Loop 语句

1? ?Do?While或Until?条件???语句块1???Exit?Do???语句块2Loop? ?

For...Next语句

1? ?Do???语句块1???Exit?Do???语句块2Loop?While或Until?条件? ?

For Each … Next语句

1? ?For?循环控制变量=初值To?终值Step?步长???语句块?‘Exit?For语句可以跳出循环体Next? ?

跳出本次循环的continue语句

1? ?For?循环控制变量=初值?To?终值?Step?步长????Do?'用于模拟continue????????语句块?????????If?条件?Then?Exit?Do?'用于模拟continue????????语句块?????Loop?While?False?'用于模拟continue?Next? ?

With语句

1? ?With?对象引用???语句块End?With? ?

On Error语句

1? ?On?Error?Goto?出错处理语句的label?'跳转到出错处理语句? ?

1? ?On?Error?Resume?Next?'遇到错误,不管错误,继续往下执行? ?

具有控制作用的函数

If(条件式,表达式1,表达式2)?[5]

Switch(条件式1,表达式1,[条件式2,表达式2[,...,条件式n,表达式n]])

Choose(索引式,选项1[,选项2,...[,选项n]]) '这是基于1的索引

其他语句

编辑

注释语句

使用REM或者单引号开始的行。?[6]

语句的连写与续行

如果一行包括多条语句,用冒号分割各个语句。跨多行的语句,在行末用“空格加下划线”表示续行?[6]??。

过程与函数

编辑

12? ?Sub?过程名(参数表)????语句块????Exit?Sub????语句块End?Sub??? ?

1? ?Function?函数名(参数表)?As?Type???语句块???函数名=表达式???Exit?FunctionEnd?Function? ?

可以是Private、Public、Friend、Static等修饰。?[6]

调用函数/过程时,可以加括号或者不加括号。如果调用表达式作为一行的一部分,那么必须用参数,例如函数调用的返回值赋给变量。 调用过程时, 可以使用/不使用call关键字。使用call语句调用过程,如果无参数,则不加括号;如果有参数,必须加括号。如果调用时用括号包住单个参数,则该参数强行按值传递。需要特别注意,不用call不加括号的调用,形参与实参是传值(passed by value)而不是传引用(passed by reference),这会导致一些对象的方法调用失败。例如:?[6]

1? ?Dim?cn?As?ADODB.Connection????Set?cn?=?CurrentProject.Connection????Dim?rs?As?New?ADODB.Recordset????????rs.Open?"SELECT?*?FROM?myTable"?,?cn????Dim?ExcelApp?As?New?Excel.Application????Dim?ExcelWst?As?Worksheet????Set?ExcelWst?=?ExcelApp.Workbooks.Add.Worksheets(1)????ExcelWst.Range("A2").CopyFromRecordset(rs)?'失败,无法执行该行????ExcelWst.Range("A2").CopyFromRecordset?rs??'可成功执行该行? ?

常用内置函数

编辑

VBA的常用内置函数:?[5]

MsgBox

InputBox

舍入函数:Fix 向0取整,Int向下取整, Round四舍五入

Rnd: 返回0-1内的单精度随机数

字符串函数:?[5]

Filter:对字符串的一维数组的过滤

InStr([Start, ]Str1,Str2[, Compare])与InStrRev: 查找子串

Len:字符串长度

Join:连接一维数组中的所有子字符串

Left,Right,Mid: 截取子字符串

Space(数值) :生成空格字符串

Ucase,Lcase:大小写转换函数

Ltrim, Rtrim,Trim :删除首尾空格

Replace

Split:分割一个字符串成为一维数组

StrComp:字符串比较

StrConv:字符串转换

String(number, character):制定字符重复若干次

StrReverse

日期/时间有关函数:?[5]

Year, Month, Day, WeekDay,Hour,Minute,Second: 截取日期时间分量

DateAdd: 日期/时间增量函数

DateDiff(间隔类型,日期1,日期2[,W1][,W2])日期/时间的距离函数

DatePart(分割类型,日期[,w1][,w2])时间分割函数

DateSerial(表达式1,表达式2,表达式3) 合成日期;DateValue(“字符串表达式”)返回日期;

Date,Time,Now,Timer: 返回日期时间

DateValue

TimeSerial:由时间序列得到时间对象

TimeValue:由时间字符串得到时间对象

Weekday:获得日期的周几

WeekdayName

转换函数:CBool、CByte、CCur、?CDate、 CDbl、CDec、CInt、?CLng、CLngLng、CLngPtr、?[5]??CSng、CStr、CVar、CVErr、Asc(字符串表达式)返回第一个字符的Ascii编码值、Chr(ASCII码)返回字符、Hex、Oct、Str(数值表达式)返回字符串、Val(string)、Format、FormatCurrency、FormatDateTime、FormatNumber、FormatPercent、MonthName。

Nz(表达式或字段属性值[,规定值])如果是空,则返回0或者""或者函数的第二个参数值?[5]

验证函数:isNumeric、isDate、isNull、isEmpty、IsArray、IsError、IsMissing、IsObject?[5]

数学函数:Abs、Sqr、Tan、Atn(即atan)、Sin、Cos、Exp(e为基的指数)、Log自然对数?[5]

Array:构造一个Array对象?[5]

CallByName: get or set a property, or invoke a method at run time using a string name.?[5]

控制流:Choose:类似于C语言的select语句、If相当于IF-ELSE语句、Switch?[5]

Command:获取命令行参数?[5]

CreateObject:创建ActiveX对象

CurDir:返回指定驱动器的当前工作路径?[5]

由基本数学函数导出的函数:Sec、Cosec、Cotangent、Cotan、Arcsin、Arccos、Arcsec、Arccosec、Arccotan、HSin、HCos、HTan、HSec、HCosec、HCotan、HArcsin、HArccos、HArctan、HArcsec、HArccosec、HArccotan、LogN

DoEvents:暂时把CPU控制权交回给系统?[5]

Environ:返回环境变量的值?[5]

文件操作:?[5]

Dir:返回满足条件的所有文件、目录的名字

EOF

FileAttr

FileDateTime

FileLen

FreeFile Function

GetAttr:返回文件、目录的属性值

Input:读取文件

Loc:文件指针位置

LOF:文件打开时的指针位置

Seek:文件指针定位

Spc:使用Print做position output

Tab:用于Print函数

Error:错误号对应的错误消息?[5]

Windows Registry中的数据:GetAllSettings、SaveSetting、DeleteSetting、GetSetting?[5]

GetObject:ActiveX组建的引用?[5]

IMEStatus:返回当前Input Method Editor (IME)?[5]

Macintosh平台:MacID、MacScript?[5]

金融函数:?[5]

DDB:使用double-declining balance计算贬值

FV:计算固定利率的年金

IPmt:计算利率

IRR:计算利率

MIRR:计算利率

NPer:计算周期数

NPV:计算net present value

Pmt:计算支付数

PPmt:计算本金支付数

PV:计算present value

Rate:利息率

SLN:straight-line depreciation

SYD:计算sum-of-years' digits depreciation

Partition:返回字符串,表示一个数值名字落在各个range内。常用于SQL select语句?[5]

QBColor:颜色值?[5]

RGB:颜色值?[5]

TypeName:得到变量的类型名?[5]

VarType:得到变量的类型数?[5]

求《从零开始学ExcelVBA》全文免费下载百度网盘资源,谢谢~

《从零开始学Excel VBA》百度网盘pdf最新全集下载:

链接:

?pwd=5518 提取码: 5518

简介:本书主要分为6篇,包括Excel VBA准备篇、Excel VBA基础篇、Excel VBA对象模型篇、Excel VBA用户界面设计篇、Excel VBA高级应用篇、Excel VBA综合实例篇。Excel VBA准备篇从VBA的发展历史、Excel 2007和Excel宏讲起,为Excel VBA初学者快速入门提供了保证。Excel VBA基础篇系统地讲解了Excel VBA开发环境,以及Excel VBA的数据类型、运算符、函数与过程等语法知识。 ?

(责任编辑:IT教学网)

更多

推荐CorelDraw教程文章