VBA超详细总结.docx

上传人:b****7 文档编号:8696827 上传时间:2023-02-01 格式:DOCX 页数:18 大小:39.33KB
下载 相关 举报
VBA超详细总结.docx_第1页
第1页 / 共18页
VBA超详细总结.docx_第2页
第2页 / 共18页
VBA超详细总结.docx_第3页
第3页 / 共18页
VBA超详细总结.docx_第4页
第4页 / 共18页
VBA超详细总结.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

VBA超详细总结.docx

《VBA超详细总结.docx》由会员分享,可在线阅读,更多相关《VBA超详细总结.docx(18页珍藏版)》请在冰豆网上搜索。

VBA超详细总结.docx

VBA超详细总结

VBA笔记

道具:

案例一:

代码:

解析:

拓展:

VBA前景知识:

VBA所实现的功能简单的说就是通过编写程序,用几个简单操作实现一系列的操作,以达到高效的目的,在做重复的操作时相当有效。

在EXCEL中,要进入VBA编辑界面,首先要调出开发工具选项卡。

按快捷键Alt+F+T到Excel选项,在自定义功能区勾选上开发工具并确定。

在Excel中,宏功能是默认禁用的,因为很多病毒会通过宏传播。

在使用之前需要启用该功能。

按快捷键Alt+F+T到Excel选项,在信任中心→信任中心设置→宏设置→启用所有宏→确定。

VBA中有对象、方法、属性。

理解这些是学习VBA的基础。

1、对象:

工作簿、工作表、单元格、行、列等

2、属性:

相应对象的属性。

如工作表名称、单元格的行高等属性一般理解为对象拥有的静态特性。

3、方法:

对相应对象所执行的动作称为对象的方法。

如单元格移动、单元格删除内容等。

从形状上来区别:

前面带绿色图标的就是方法,带手形标志的就是属性。

案例一:

如何点击按钮实现简单加法运算?

代码:

Sub加法运算过程()

Cells(1,5)=Cells(1,1)+Cells(1,3)

Endsub

解析:

在开发工具选项卡中插入按钮控件,修改宏名为“加法运算过程”,新建,这样就进入VBA编辑界面。

这里的宏简单讲就是编程产生的一系列操作,而点击刚才插入的按钮就可以触发这些操作,这样一个点击操作就可以实现一系列的操作。

Ctrl+S保存,这里下拉菜单中文件保存类型选成“启用宏的工作簿”。

因为默认文件类型是默认禁用的,很多病毒会通过宏传播,保存成xlsx则丢失代码

右击按钮→编辑文字→修改为“加法”。

这里的加法是按钮显示出来的名称,和宏名不一样。

宏是编程产生的一系列操作过程,引用宏名就代表操作这一系列过程。

而按钮可以指定不同的宏过程。

在开发工具选项卡中→宏→加法运算过程→编辑进入宏过程编辑界面。

输入下面代码。

上面代码中,sub表示宏开始,endsub表示宏结束,“加法运算过程”是宏名,后面的括号可有可无。

宏macro

Cells是VBA中最基本的对象,Cells(行号,列号)表示引用单元格,Cells(1,1)是指A1单元格的内容。

拓展:

案例二:

如何点击按钮实现新建,保存,关闭,打开工作簿?

代码:

Workbooks.Add

ActiveWorkbook.SaveAs"C:

\Users\Administrator\Desktop\工作簿4.xlsx"

ActiveWorkbook.Close

Workbooks.OpenFilename:

="C:

\Users\Administrator\Desktop\工作簿1.xlsx"

Workbooks("工作簿1.xlsx").Close

解析:

拓展:

Workbooks.open(“路径”)也可以打开文件

案例三:

定义函数:

(参数可以有多个,用逗号隔开)

代码:

Function乘积(a,b)

乘积=a*b

Endfunction

解析:

用函数名调用这个功能,可以在VBA中调用,也可以像其它函数一样调用。

括号内的参数可以有多个。

拓展:

系统函数:

sqr(a)平方根

如要在VBA中使用工作表中的函数,用

Apication.worksheetfunction.公式名称()直接调用

括号中引用范围时,需要要用range等调用,不能用“A1”引用

过程分为子过程和函数

案例四:

函数汇总()

代码:

(1)

Sub按钮5_Click()

Dimi,j,total

Dimw1AsWorksheet

Forj=2ToWorksheets.Count

Setw1=Worksheets(j)

i=2

total=0

DoWhilew1.Cells(i,2)<>""

total=total+w1.Cells(i,2)

i=i+1

Loop

w1.Cells(2,3)=total

Nextj

EndSub

(2)

Sub按钮6_Click()

'Call按钮5_Click

Dimi

Dimw1AsWorksheet,w2AsWorksheet

Setw2=Worksheets

(1)

Fori=2ToWorksheets.Count

Setw1=Worksheets(i)

w2.Cells(i,1)=w1.Cells(1,2)

w2.Cells(i,2)=w1.Cells(2,3)

Nexti

EndSub

(3)

Sub按钮7_Click()

Dimi,j,total

Dimw1AsWorksheet,w2AsWorksheet

Setw2=Worksheets

(1)

Fori=2ToWorksheets.Count

Setw1=Worksheets(i)'i循环工作表

j=2'j循环成绩

total=0

DoWhilew1.Cells(j,2)<>""

total=total+w1.Cells(j,2)

j=j+1

Loop

w1.Cells(2,3)=total

w2.Cells(i,1)=w1.Cells(1,2)

w2.Cells(i,2)=w1.Cells(2,3)

Nexti

解析:

'Call按钮5_Click‘为程序中的注释,只起解释作用,不会运算。

去掉’时,call+子过程,表示调用这个子过程。

Call是过程调用的关键字,当遇到call时,先运行调用的过程,再往下运行。

Sub,endsub即是一个子过程,宏是其小名。

过程调用的call可以省略,只写出过程名。

拓展:

案例五:

地址拆分

代码:

Sub地址拆分()

Cells(2,2)=Left(Cells(1,2),InStr(Cells(1,2),"县")-1)

Cells(3,2)=Mid(Cells(1,2),InStr(Cells(1,2),"县")+1,InStr(Cells(1,2),"路")-InStr(Cells(1,2),"县")-1)

Cells(4,2)=Mid(Cells(1,2),InStr(Cells(1,2),"路")+1,InStr(Cells(1,2),"号")-InStr(Cells(1,2),"")-1)

EndSub

解析:

拓展:

正则表达示处理字符串更容易

案例一:

三重循环汇总

代码:

解析:

拓展:

专题一:

常用类、对象、属性和方法

颜色:

vbred

RGB(r,g,b)

Application代表EXCEL本身

Workbook工作簿

Worksheet表

Range区域

上下为从属关系

Cells引用单元格是range对象的属性

相对于rangecells可以实现循环

属性

Cells(行数,列数).value

Cells(行数,列数).font.size

Cells(行数,列数).font.color=

Cells(行数,列数).font.name字体大小

Cells(行数,列数).font.fontstyle字体加粗

Cells(行数,列数).Interior.color背景颜色

Cells(行数,列数).height单元格行高(只能在显示中用)

Cells(行数,列数).rowheight行高(可以进行设置也可以进行msgbox显示)

withrange.font

.color=

.size=

.bold=

endwith

方法

Cells(行数,列数).select

activecell

Range引用多个单元格区域

如:

Range("A1:

A10,A18"),Range(cells(1,1),cells(10,1))

属性

Range.cells

Range.value让选定区域的值都为某个数。

此属性可以省略,为默认值

range.font.size/color/italic/bold/=(bold为粗体italic为斜休(用ture,false确定)

range.Interior.color背景颜色

range.Interior.colorindex=7背景颜色

方法

Range.delete

Range("A2:

D10").Select

Range("A2:

D10").copy目标位置

range.clear

range.clearcontents

range.clearformats清除格式

range.merge/unmerge合并/拆分单元格

Workbooks是工作簿集对象

用Workbook("办公费用")或Workbooks(3)引用某个工作表

属性

Workbooks.count

方法

Workbooks.add“路径”

Workbooks.open(“路径”)

Workbooks.OpenFileName:

="Array.xls",ReadOnly:

=True

Workbooks.close关闭所有打开的工作簿关闭所有工作簿

Workbooks(“XXX”).close关闭特定工作簿

Workbooks.saveas“路径.扩展名”保存文件,此处不返回值,所以不用括号

Workbooks

(1).Activate激活第一个工作簿

workbook是工作簿文件对象

属性

Workbook.ActiveSheet

Workbook.Author

Workbook.saved

Workbook.name

Workbook.path

方法

Workbook.Activate

Workbook.Close

Workbook.Save

Workbook.SaveAs另存为

Thisworkbook当前工作簿

属性

Thisworkbook.name

Thisworkbook.path

方法

Thisworkbook.

Activeworkbook活动工作簿

属性

Activeworkbook.author

方法

ActiveWorkbook.SaveAsFilename:

="C:

\Users\Administrator\Desktop\工作簿1.xlsx"

Worksheets当前工作簿所有的工作表

用Worksheet("XX")或Worksheets(3)引用某个工作表

属性

Worksheets.count

Worksheets.name

方法

Worksheets.Add

Worksheet

属性

Worksheet.Name

Worksheet.Visible

方法

Worksheet.Calculate对指定的工作表重新计算

Worksheet.Copy

Worksheet.Move

Worksheet.Delete

Sheet1sheet2

Application

Application.cells表示当前活动表的单元格

Application.Quit退出应用

Application.activeworkbook当前活动的簿

Application.activesheet当前活动的表

Apication.worksheetfunction.公式名称()直接调用

括号中引用范围时,需要要用range等调用,不能用“A1”引用

Application.displayalerts=false时,则就不会显示,强制覆盖。

专题二:

顺序、循环、分支三种结构

顺序

循环

for循环

指定次数。

与dowhile相比,for有内置的计数器

(1)

Fori=1to20step1

循环体

Nexti(单个for时i可不写)

(2)

Foreachainb(b.count)

循环体

Nexta如foreachwinworkbooks第一个工作表

foreachwinrange第一个单元格

=

fori=1tob.count

循环体

Nexti

While循环(无特定终点)

While条件

循环体

Wend

DO循环

DO(DO开关)

 

LOOP(DO结尾)

无限循环,可以在中间用EXITDO终止循环。

或者使用EXITSUB结束子过程。

有多层循环时,跳出的是内层do循环

EXITfor

Exitfunction

Exitsub可以用于退出第一次

End结束过程或块

Endfor/function/sub/if/select

单独用END结束当前过程或块

DoWhile循环(当)

DoWhile条件

循环体

Loop

其中do是循环,while是条件

Dountil(直到)

Dountil条件

循环体

Loop

While和until可以放在loop之后,表示先循环再判断。

Foreachainb

Dimbasrange

Foreachbinsheet1.range(“A3:

A11”)

Next

将每个单元格指定给b,多用于对象的操作

分支

If分支

If条件then

计算

Else(单个IF可不写)

计算

Endif

如果ifthen所有内容在一行内,此if可以不用endif结束

ELSEIF语句

If条件then

循环体

Elseif条件then

计算

Elseif条件then

计算

Else结果

Endif

从ABCD等级从大到小依次循环体,前面满足后面就不会执行。

SELECT判断语句

条件判断,像if一样

Pad=”888”

SELECTCASEPAD

CASE“888”

MSGBOX“good”

Caseelse(类似if中的else)

MSGBOX“bad”

ENDSELECT

For和if配合使用,在一堆中找出一个

跳转语句

标识:

Goto标识

Return(返回到goto)

专题三:

程序调试

设置断点:

在左边灰色区域点击或者F9。

单独执行:

F8。

CTRL+F8运行到光标处

F5运行

CTRL+BREAK在光标处中断。

调试→添加监视:

输入要监视的变量,显示变量的数值,而不用动鼠标位置。

调试→清除所有断点

注释

REM注释语句,或’

语法错误标记为红色

专题四:

疑问解决

录制宏:

记录手工,翻译成代码

帮助

VBA教程

专题五:

运算符

算术运算符

+-*/

^求幂

\整除

Mod求余

连接运算符

&+针对字符(&两边要加空格)

逻辑运算符

andornot(符号两边的表达式都要完整,不能省)优先级not>and>or返回true/false

运算符两边的表达式要完整才行

关系/比较运算符

<>=<>>=<=

专题六:

命名规则

optionexplicit强制声明

dima,b,c定义变量

constpi=3.14定义常量

dimw1asworksheet/workbook/range

setw2=worksheets.add

给对象赋值要在前面加set

新建保存文件:

Setwb=workbooks.add

Wb.saveas“路径”

wb.close

大小写相同

尽量用英文

不超过256

反映变量意义

不能是系统已用的名字。

如sub,end,if,for,while,

分为常量和变量

不能以数字开头

专题七:

快捷键

工程资源管理器:

CTRL+R

属性窗口:

F4

专题八:

数据类型

数据类型中文占用空间缩写

Byte字节1字节0-255dimaasbyte(a只能是0-255的数字)

例:

Dimaasbyte/dima%

超过范围将溢出

类型

占用

符号

范围

Boolean

布尔

2字节

true或false

Integer

整数

2字节

%

Long

长整型

4

&

Single

单精

4

Double

双精

8

#

string

字符串

定或变

$

Currency

货币型

8

@

变体变量

Date

String字符串长度$

Dimaasstring不定长

Dimaasstring*3定长

Object对象

Variant

Empty空

专题九:

VBE编辑器窗口

开发工具+VB;ALT+F11

在工具,选项,编辑器格式中调整字体

窗口

工程窗口:

对象,模块

属性窗口

编辑窗口下划线+空格+回车实现形式上的换行

立即窗口

在VBE的立即窗口中输入命令,回车后立即运行,大概由此而来为“立即窗口”,试一下,输入:

MSGBOX"ExcelHome"

回车后弹出一个对话框。

用得更多的是在程序调试过程中,把结果输出到立即窗口,检查程序运行结果是否正确,在代码中插入:

Debug.PrintS

运行这一句,会把变量S的值输出到立即窗口中。

debug.print的内容在立即窗口中显示

本地窗口

显示所有的数据

插入

(可以通过菜单或者工程窗口右键)

模块

窗体

类模块

视图:

本地窗口:

监视变量

编辑窗口:

监视变量

立即窗口

自定义工具

编辑

设置注释,解除注释块

专题十:

提示框

Msgboxa消息框显示a

Inputbox(“提示语”)

当保存时会弹出保存替换对话框。

如果

Application.displayalerts=false时,则就不会显示,强制覆盖。

后面要设置成ture.

专题十一:

文本操作

关于字符串“”

Replace(s,a,b)在s中用b替换a可以去掉字符串中的空格

Trim()去两边空格

Lcase转换成小写

ucase转换成大写,只能在VBA中用以上三个在字符串比较时有用

Left(s,a)s中,左a位

right(s,b)

mid(s,i,a)s中,从第i位开始的a位

INSTR(i,s,a)在s中从第i个字符找a,返回的是位置值,第一个参数可以省略。

Len()字符长度

双引号就是字符串的标志

特殊的字符可以是空格,换行符,回车符,0字符的空串等

&连接字符串时,前后有空格。

变量加&有特殊含义

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 党团建设

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

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