大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> 程序开发 -> VBA语言基础 vba教程

VBA语言基础 vba教程

时间: 2021-07-31 作者:daque

1 vba谈话普通

     一.设置

操作符是一种标识变量、恒量、进程、因变量、类等谈话形成单元的标记,运用它不妨实行对变量、恒量、进程、因变量、类等的援用。

二.定名准则

1) 假名打头,由假名、数字和下划线构成,如 a987b_23abc

2) 字符长度小于40,(excel2002之上华文版等,不妨用中国字且长度可达254个字符)

3) 不许与vb保持字重名,如public, private, dim, goto, next, with, integer, single等

第二节 演算符

设置:演算符是代办vb那种演算功效的标记。

1)赋值演算符 =

2)数学演算符 &、+ (字符贯穿符)、+(加)、-(减)、mod(取余)、\(整除)、*(乘)、/(除)、-(负号)、^(指数)

3)论理演算符not(非)、and(与)、or(或)、xor(异或)、eqv(十分)、imp(隐含)

4)联系演算符 = (沟通)、<>(不等)、>(大于)、<(小于)、>=(不小于)、<=(不大于)、like、is

5)位演算符 not(论理非)、and(论理与)、or(论理或)、xor(论理异或)、eqv(论理等)、imp(隐含)

第三节 数据典型

vba公有12种数据典型,简直见下表,此突矬户还不妨按照以次典型用type自设置数据典型。

数据典型 典型操作符 字节

字符串型 string $ 字符长度(0-65400)

字节型 byte 无 1

布尔型 boolean 无 2

平头型 integer % 2

长平头型 long & 4

单精度型 single ! 4

双精度型 double # 8

日子型 date 无 8 纪元100/1/1-9999/12/31

钱币型 currency @ 8

少量点型 decimal 无 14

变体型 variant 无 之上大肆典型,可变

东西型 object 无 4

第四节 变量与恒量

1)vba承诺运用不决义的变量,默许是变体变量。

2)在模块通用证明部份,介入 option explicit 语句不妨抑制用户举行变量设置。

3)变量设置语句及变量效率域

dim 变量 as 典型    '设置为限制变量,如 dim xyz as integer

private 变量 as 典型    '设置为独占变量,如 private xyz as byte

public 变量 as 典型    '设置为国有变量,如 public xyz as single

global 变量 as 典型    '设置为全部变量,如 globlal xyz as date

static 变量 as 典型    '设置为静态变量,如 static xyz as double

普遍变量效率域的规则是,那部份设置就在那部份起效率,模块中设置则在该模块那效率。

4)恒量为变量的一种惯例,用const设置,且设置时赋值,步调中不许变换值,效率域也犹如变量效率域。如次设置:const pi=3.1415926 as single

第六节 数组

数组是包括沟通数据典型的一组变量的汇合,对数组中的单个变量援用经过数组索引下标举行。在外存中展现为一个贯串的外存块,必需用global或dim语句来设置。设置准则如次:

dim 数组名([lower to ]upper [, [lower to ]upper, ….]) as type ;lower缺省值为0。二维数组是按队伍陈设,如xyz(行,列)。

除去之上固定命组外,vba再有一种功效宏大的动静数组,设置时无巨细维数证明;在步调中再运用redim语句来从新变换数组巨细,从来数组实质不妨经过加preserve要害字来保持。如次例:

dim array1() as double : redim array1(5) : array1(3)=250 : redim preserve array1(5,10)

第六节 解释和赋值语句

1)解释语句是用来证明步调中某些语句的功效和效率;vba中有两种本领标识为解释语句。

ü 单引号 ’ ;如:’设置全部变量;不妨坐落其余语句之尾,也可独立一条龙

ü rem ;如:rem设置全部变量;只能独立一条龙

2)赋值语句是举行对变量或东西属性赋值的语句,沿用赋值号 =,如x=123:form1.caption=”我的窗口”

对东西的赋值沿用:set myobject=object 或   myobject:=object

第七节 抄写典型

1)vba不辨别操作符的假名巨细写,一致觉得是小写假名;

2)一条龙不妨抄写多条语句,各语句之间以冒号 : 划分;

3)一条语句不妨多行抄写,以空格加下划线 _ 来标识下动作续行;

4)操作符最佳能简略领会,不形成歧异。

第八节 确定语句

1)if…then…else语句

if condition then [statements][else elsestatements]

如1:if a>b and c<d then a=b+2 else a=c+2

如2:if x>250 then x=x-100

大概,不妨运用块情势的语法:

if condition then

[statements]

[elseif condition-n then

[elseifstatements] ...

[else

[elsestatements]]

end if

如1:

if number < 10 then

     digits = 1

elseif number < 100 then

     digits = 2

else

     digits = 3

end if

2)select case…case…end case语句

如1:

select case pid

case “a101”

price=200

case “a102”

price=300

……

case else

price=900

end case

3)choose 因变量

choose(index, choce-1,choice-2,…,choice-n),不妨用来采用自变量数列中的一个值,并将其归来,index 需要参数,数值表白式或字段,它的演算截止是一个数值,且界于 1 和可采用的名目数之间。choice 需要参数,variant表白式,包括可采用项手段个中之一。如:

getchoice = choose(ind, "speedy", "united", "federal")

4)switch因变量

switch(expr-1, value-1[, expr-2, value-2 _ [, expr-n,value-n]])

switch因变量和choose因变量一致,但它是以两个一组的办法归来所要的值,在数列中,最先为true的值会被归来。 expr 需要参数,要加以计划的 variant 表白式。value 需要参数。即使关系的表白式为 true,则归来此局部的数值或表白式,没有一个表白式为 true,switch 会归来一个 null值。

第九节 轮回语句

1)for next语句 以指定度数来反复实行一组语句

for counter = start to end [step step]   ' step 缺省值为1

[statements]

[exit for]

[statements]

next [counter]

如1:

for words = 10 to 1 step -1      ' 创造 10 次轮回

     for chars = 0 to 9     ' 创造 10 次轮回

         mystring = mystring & chars     ' 将数字增添到字符串中

     next chars     ' increment counter

     mystring = mystring & " "    ' 增添一个空格

next words

2)for each…next语句 重要功效是对一个数组或汇合东西举行,让一切元素反复实行一次语句

for each element in group

statements

[exit for]

statements

next [element]

如1:

for each rang2 in range1

with range2.interior

.colorindex=6

.pattern=xlsolid

end with

next

这上头一例顶用到了 with…end with 语句,手段是省去东西屡次挪用,加赶快度;语法为:

with object

[statements]

end with

3)do…loop语句 在前提为true时,反复实行区块吩咐

do {while |until} condition      ' while 为当型轮回,until为直到型轮回,望文生义,不多说啦

statements

exit do

statements

loop

大概运用底下语法

do ' 先do 再确定,即不管怎样先干一次再说

statements

exit do

statements

loop {while |until} condition

第十节 其余类语句和缺点语句处置

一.其余轮回语句

构造化步调运用之上确定和轮回语句仍旧充满,倡导不要简单运用底下的语句,固然vba还扶助。

1) goto line 该语句为跳转到line语句行

2) on expression gosub destinatioinlist 大概 on expression goto destinationlist 语句为按照 exprssion表白式值来跳转到所要的行号或行标志

3) gosub line…line…return语句, return 归来到 gosub line行,如次例:

sub gosubtry()

dim num

num=inputbox(“输出一个数字,此值将会被确定轮回”)

if num>0 then gosub routine1 :debug.print num:exit sub

routine1:

num=num/5

return

end sub

4) while…wend语句,只有前提为true,轮回就实行,这是往日vb老语法保留住来的,如次例:

     while condition ‘while i<50

[statements] ‘i=i+1

wend ‘wend

二.缺点语句处置

实行阶段偶尔会有缺点的情景爆发,运用on error语句来处置缺点,启用一个缺点的处置步调。语法如次:

on error goto line            ‘当缺点爆发时,会连忙变化到line行去

on error resume next                 ‘当缺点爆发时,会连忙变化到爆发缺点的下一条龙去

on erro goto 0 ‘当缺点爆发时,会连忙遏止进程中任何缺点处置进程

第十一节 进程和因变量

进程是形成步调的一个模块,常常用来实行一个对立独力的功效。进程不妨使步调更明显、更具构造性。vba具备四种进程:sub 进程、function因变量、property属性进程和event事变进程。

一.sub进程

sub 进程的参数有两种传播办法:按值传播(byval)和按地方传播(byref)。如次例:

sub password (byval x as integer, byref y as integer)

if y=100 then y=x+y else y=x-y

x=x+100

end sub

sub call_password ()

dim x1 as integer

dim y1 as integer

x1=12

y1=100

call password (x1,y1) ‘挪用进程办法:1. call 进程名(参数1, 参数2…) ; 2. 进程名 参数1, 参数2…

debug.print x1,y1     ‘截止是12、112,y1按地方传播变换了值,而x1按值传播,未变换原值

end sub

二.function因变量

因变量本质是实行一种映照,它经过确定的映照准则,实行演算并归来截止。参数传播也两种:按值传播(byval)和按地方传播(byref)。如次例:

function password(byval x as integer, byref y as integer) as boolean

if y=100 then y=x+y else y=x-y

x=x+100

if y=150 then password=true else password=false

end function

sub call_password ()

dim x1 as integer

dim y1 as integer

x1=12

y1=100

if password then ‘挪用因变量:1. 动作一个表白式放在=右端 ; 2. 动作参数运用

debug.print x1   

     end if

end sub

三.property属性进程和event事变进程

这是vb在东西功效上增添的两个进程,与东西特性出色关系,也是vba比拟要害构成,本领比拟搀杂,不妨参考关系书本。

第十二节里面因变量

在vba步调谈话中有很多内置因变量,不妨扶助步调代码安排和缩小代码的编写处事。

一.尝试因变量

isnumeric(x)     ‘能否为数字, 归来boolean截止,true or false

isdate(x)        ‘能否是日子, 归来boolean截止,true or false

isempty(x)    ‘能否为empty, 归来boolean截止,true or false

isarray(x) ‘指出变量能否为一个数组

iserror(expression) ‘指出表白式能否为一个缺点值

isnull(expression) ‘指出表白式能否不包括任何灵验数据 (null)。

isobject(identifier) ‘指出操作符能否表白东西变量

二.数学因变量

sin(x)、cos(x)、tan(x)、atan(x) 三角因变量,单元为弧度

log(x) 归来x的天然对数

exp(x)归来 ex

abs(x) 归来一致值

int(number)、fix(number) 都归来参数的平头局部,辨别:int 将 -8.4 变换成 -9,而 fix 将-8.4 变换成 -8

sgn(number) 归来一个 variant (integer),指出参数的正负号

sqr(number) 归来一个 double,指定参数的平方根

vartype(varname) 归来一个 integer,指出变量的子典型

rnd(x)归来0-1之间的单精度数据,x为随机健将

三.字符串因变量

trim(string) 去掉string安排两头空缺

ltrim(string) 去掉string左端空缺

rtrim(string) 去掉string右端空缺

len(string) 计划string长度

left(string, x) 取string左段x个字符构成的字符串

right(string, x) 取string右段x个字符构成的字符串

mid(string, start,x) 取string从start位发端的x个字符构成的字符串

ucase(string) 变换为小写

lcase(string) 变换为小写

space(x) 归来x个空缺的字符串

asc(string) 归来一个 integer,代办字符串中首假名的字符代码

chr(charcode) 归来 string,个中包括有与指定的字符代码关系的字符

四.变换因变量

cbool(expression) 变换为boolean型

cbyte(expression) 变换为byte型

ccur(expression) 变换为currency型

cdate(expression) 变换为date型

cdbl(expression) 变换为double型

cdec(expression) 变换为decemal型

cint(expression) 变换为integer型

clng(expression) 变换为long型

csng(expression) 变换为single型

cstr(expression) 变换为string型

cvar(expression) 变换为variant型

val(string) 变换为数据型

str(number) 变换为string

五.功夫因变量

now     归来一个 variant (date),按照计划机体例树立的日子和功夫来指定日子和功夫。

date   归来包括体例日子的 variant (date)。

time     归来一个指明暂时体例功夫的 variant (date)。

timer    归来一个 single,代办从深夜发端到此刻过程的秒数。

timeserial(hour, minute, second) 归来一个 variant (date),包括具备简直时、分、秒的功夫。

datediff(interval, date1, date2[, firstdayofweek[, firstweekofyear]]) 归来 variant (long) 的值,表白两个指定日功夫的功夫间隙数量

second(time) 归来一个 variant (integer),其值为 0 到 59 之间的平头,表白一秒钟之中的某个秒

minute(time) 归来一个 variant (integer),其值为 0 到 59 之间的平头,表白一钟点中的某秒钟

hour(time)   归来一个 variant (integer),其值为 0 到 23 之间的平头,表白一天之中的某一钟点

day(date) 归来一个 variant (integer),其值为 1 到 31 之间的平头,表白一个月中的某一日

month(date) 归来一个 variant (integer),其值为 1 到 12 之间的平头,表白一年中的半月

year(date) 归来 variant (integer),包括表白年份的平头。

weekday(date, [firstdayofweek]) 归来一个 variant (integer),包括一个平头,代办某个日子是礼拜几

第十三节 文献操纵

1) 文献

dir[(pathname[, attributes])] ;pathname 可选参数,用来指定文献名的字符串表白式,大概包括目次或文献夹、以及启动器。即使没有找到 pathname,则会归来零长度字符串 (""); attributes 可选参数。常数或数值表白式,其总和用来指定文献属性。即使简略,则会归来配合 pathname 但不包括属性的文献。

2) 简略

kill pathname 从磁盘中简略文献, pathname 参数是用来指定一个文献名

rmdir pathname 从磁盘中简略简略目次,pathname 参数是用来指定一个文献夹

3) 翻开

open pathname for mode [access access] [lock] as [#]filenumber [len=reclength] 不妨对文献输出/输入 (i/o)。

pathname 需要。字符串表白式,指定文献名,该文献名大概还囊括目次、文献夹及启动器。

mode 需要。要害字,指定文献办法,有 append、binary、input、output、或 random 办法。即使未指定办法,则以 random 考察办法翻开文献。

access 可选。要害字,证明翻开的文献不妨举行的操纵,有 read、write、或 read write 操纵。

lock 可选。要害字,证明控制于其它过程翻开的文献的操纵,有 shared、lock read、lock write、和 lock read write 操纵。

filenumber 需要。一个灵验的文献号,范畴在 1 到 511 之间。运用 freefile 因变量可获得下一个可用的文献号。 reclength 可选。小于或即是 32,767(字节)的一个数。对于用随机考察办法翻开的文献,该值即是记载长度。对于程序文献,该值即是缓冲字符数。

证明 对文献做任何 i/o 操纵之前都必需先翻开文献。open 语句调配一个缓冲区供文献举行 i/o 之用,并确定缓冲区所运用的考察办法。即使 pathname 指定的文献不生存,那么,在用 append、binary、output、或 random 办法翻开文献时,不妨创造这一文献。即使文献已由其它过程翻开,并且不承诺指定的考察典型,则 open 操纵波折,并且会有缺点爆发。即使 mode 是 binary 办法,则 len 子句会被忽视掉。

要害 在 binary、input 和 random 办法下不妨用各别的文献号翻开同一文献,而不用先将该文献封闭。在 append 和 output 办法下,即使要用各别的文献号翻开同一文献,则必需在翻开文献之前先封闭该文献。

4) 读入

input #filenumber, varlist 从已翻开的程序文献中读出数据并将数据指定给变量

get [#]filenumber, [recnumber], varname将一个已翻开的磁盘文献读入一个变量之中。

5) 写入

write #filenumber, [outputlist] 将数据写入程序文献

print #filenumber, [outputlist] 将方法化表露的数据写入程序文献中

put [#]filenumber, [recnumber], varname 将一个变量的数据写入磁盘文献中。

6) 封闭

close [filenumberlist] 封闭 open 语句所翻开的输出/输入 (i/o) 文献

提防 即使此后想用 input # 语句读出文献的数据,就要用 write # 语句而不必 print # 语句将数据写入文献。由于在运用 write # 时,将数据域分界就可保证每个数据域的完备性,所以可用 input # 再将数据读出来。运用 write # 还能保证任何地域的数据都被精确读出。write 与 print # 语句各别,当要将数据写入文献时,write # 语句会在名目和用来标志字符串的引号之间插入逗点。write # 语句在将 outputlist 中的结果一个字符写入文献后会插入一个新行字符,即回车换行符,(chr(13) + chr(10))。

7) 其余文献因变量

lof(filenumber) 归来一个 long,表白用 open 语句翻开的文献的巨细,该巨细以字节为单元。

eof(filenumber) 归来一个 integer,它包括 boolean 值 true,表白仍旧达到为 random 或程序 input 翻开的文献的结果。

loc(filenumber)   归来一个 long,在已翻开的文献中指定暂时读/写场所

seek(filenumber) 归来一个 long,在 open 语句翻开的文献中指定暂时的读/写场所

vba因变量(三)2009-12-31 13:21(1) option explicit '强迫对模块内一切变量举行证明

option private module '标志模块为独占,仅对同一工程中其它模块有效,在宏对话框中不表露

option compare text '字符串不辨别巨细写

option base 1 '指定命组的第一个下标为1

(2) on error resume next '忽视缺点连接实行vba代码,制止展示缺点动静

(3) on error goto errorhandler '当缺点爆发时跳转到进程中的某个场所

(4) on error goto 0 '回复平常的缺点提醒

(5) application.displayalerts=false '在步调实行进程中使展示的劝告框不表露

(6) application.screenupdating=false '封闭屏幕革新

application.screenupdating=true '翻开屏幕革新

(7) application.enable.cancelkey=xldisabled '禁止使用ctrl+break遏止宏运转的功效

处事簿

(8) workbooks.add() '创造一个新的处事簿

(9) workbooks(“book1.xls”).activate '激活名为book1的处事簿

(10) thisworkbook.save '生存处事簿

(11) thisworkbook.close '封闭暂时处事簿

(12) activeworkbook.sheets.count '获得活开工作薄中处事表数

(13) activeworkbook.name '归来活开工作薄的称呼

(14) thisworkbook.name ‘归来暂时处事簿称呼

thisworkbook.fullname ‘归来暂时处事簿路途和称呼

(15) activewindow.enableresize=false ‘遏止安排活开工作簿的巨细

(16) application.window.arrange xlarrangestyletiled ‘将处事簿以平铺办法陈设

(17) activeworkbook.windowstate=xlmaximized ‘将暂时处事簿最大化

处事表

(18) activesheet.usedrange.rows.count ‘暂时处事表中已运用的行数

(19) rows.count ‘获得处事表的行数(注:商量向前兼容性)

(20) sheets(sheet1).name= “sum” '将sheet1定名为sum

(21) thisworkbook.sheets.add before:=worksheets(1) '增添一个新处事表在第一处事表前

(22) activesheet.move after:=activeworkbook. _

sheets(activeworkbook.sheets.count) '将暂时处事表移至处事表的结果

(23) worksheets(array(“sheet1”,”sheet2”)).select '同声采用处事表1和处事表2

(24) sheets(“sheet1”).delete或 sheets(1).delete '简略处事表1

(25) activeworkbook.sheets(i).name '获得处事表i的称呼

(26) activewindow.displaygridlines=not activewindow.displaygridlines '切换处事表中的网格线表露,这种本领也不妨用在其它上面举行彼此切换,即十分于电门按钮

(27) activewindow.displayheadings=not activewindow.displayheadings ‘切换处事表中的队伍边框表露

(28) activesheet.usedrange.formatconditions.delete ‘简略暂时处事表中一切的前提方法

(29) cells.hyperlinks.delete ‘废除暂时处事表一切超链接

(30) activesheet.pagesetup.orientation=xllandscape

或activesheet.pagesetup.orientation=2 '将页面树立变动为横向

(31) activesheet.pagesetup.rightfooter=activeworkbook.fullname ‘在页面树立的表尾中输出文献路途

activesheet.pagesetup.leftfooter=application.username ‘将用户名安置在活开工作表的页脚

单位格/单位格地区

(32) activecell.currentregion.select

或range(activecell.end(xlup),activecell.end(xldown)).select

'采用暂时震动单位格所包括的范畴,左右安排无空行

(33) cells.select ‘选定暂时处事表的一切单位格

(34) range(“a1”).clearcontents '废除活开工作表上单位格a第11中学的实质

selection.clearcontents '废除选定地区实质

range(“a1:d4”).clear '完全废除a1至d4单位格地区的实质,囊括方法

(35) cells.clear '废除处事表中一切单位格的实质

(36) activecell.offset(1,0).select '震动单位格下移一条龙,同理,可下移一列

(37) range(“a1”).offset(columnoffset:=1)或range(“a1”).offset(,1) ‘偏移一列

range(“a1”).offset(rowoffset:=-1)或range(“a1”).offset(-1) ‘进取偏移一条龙

(38) range(“a1”).copy range(“b1”) '复制单位格a1,粘贴到单位格b第11中学

range(“a1:d8”).copy range(“f1”) '将单位格地区复制到单位格f1发端的地区中

range(“a1:d8”).cut range(“f1”) '剪切单位格地区a1至d8,复制到单位格f1发端的地区中

range(“a1”).currentregion.copy sheets(“sheet2”).range(“a1”) '复制包括a1的单位格地区到处事表第22中学以a1开始的单位格地区中

注:currentregion属性等价于定位吩咐,由一个矩形单位格块构成,范围是一个或多个空行或列

(39) activewindow.rangeselection.value=xx '将值xx输出到所选单位格地区中

(40) activewindow.rangeselection.count '震动窗口中采用的单位格数

(41) selection.count '暂时选中地区的单位格数

(42) getaddress=replace(hyperlinkcell.hyperlinks(1).address,mailto:,””) ‘归来单位格中超等链接的地方并赋值

(43) textcolor=range(“a1”).font.colorindex ‘查看单位格a1的文本脸色并归来脸色索引

range(“a1”).interior.colorindex ‘获得单位格a1背局面

(44) cells.count ‘归来暂时处事表的单位格数

(45) selection.range(“e4”).select ‘激活暂时震动单位格下方3行,向右4列的单位格

(46) cells.item(5,”c”) ‘引单位格c5

cells.item(5,3) ‘引单位格c5

(47) range(“a1”).offset(rowoffset:=4,columnoffset:=5)

或 range(“a1”).offset(4,5) ‘指定单位格f5

(48) range(“b3”).resize(rowsize:=11,columnsize:=3)

rnage(“b3”).resize(11,3) ‘创造b3:d13地区

(49) range(“data”).resize(,2) ‘将data地区夸大2列

(50) union(range(“data1”),range(“data2”)) ‘将data1和data2地区贯穿

51) intersect(range(“data1”),range(“data2”)) ‘归来data1和data2地区的穿插地区

(52) range(“data”).count ‘单位格地区data中的单位格数

range(“data”). columns.count ‘单位格地区data中的列数

range(“data”). rows.count ‘单位格地区data中的行数

(53) selection.columns.count ‘暂时选中的单位格地区中的列数

selection.rows.count ‘暂时选中的单位格地区中的行数

(54) selection.areas.count ‘选中的单位格地区所包括的地区数

(55) activesheet.usedrange.row ‘获得单位格地区中运用的第一条龙的行号

(56) rng.column ‘获得单位格地区rng左上角单位格地方列编号

(57) activesheet.cells.specialcells(xlcelltypeallformatconditions) ‘在活开工作表中归来一切适合前提方法树立的地区

(58) range(“a1”).autofilter field:=3,visibledropdown:=false ‘封闭因为实行机动挑选吩咐爆发的第3个字段的下拉列表

称呼

(59) range(“a1:c3”).name=“computer” ‘定名a1:c3地区为computer

或range(“d1:e6”).name=“sheet1!book” ‘定名限制变量,即sheet1上地区d1:e6为book

或 names(“computer”).name=“robot” ‘将地区computer重定名为robot

(60) names(“book”).delete ‘简略称呼

(61) names.add name:=“contentlist”,_

refersto:=“=offset(sheet1!a2,0,0,counta(sheet2!$a:$a))” ‘动静定名列

(62) names.add name:=“company”,refersto:=“companycar” ‘定名字符串companycar

(63) names.add name:=“total”,refersto:=123456 ‘将数字123456定名为total。提防数字不许加引号,要不即是定名字符串了。

(64) names.add name:=“myarray”,refersto:=arraynum ‘将数组arraynum定名为myarray。

(65) names.add name:=“producenum”,refersto:=“=$b$1”,visible:=false ‘将称呼湮没

(66) activeworkbook.names(“com”).name ‘归来称呼字符串

公式与因变量

(67) application.worksheetfunction.isnumber(“a1”) '运用处事表因变量查看a1单位格中的数据能否为数字

(68) range(“a:a”).find(application.worksheetfunction.max(range(“a:a”))).activate

'激活单位格地区a列中最大值的单位格

(69) cells(8,8).formulaarray=“=sum(r2c[-1]:r[-1]c[-1]*r2c:r[-1]c)” ‘在单位格中输出数组公式。提防必需运用r1c1款式的表白式

图表

(70) activesheet.chartobjects.count '获得暂时处事表中图表的个数

(71) activesheet.chartobjects(“chart1”).select ‘选中暂时处事表中图表chart1

(72) activesheet.chartobjects(“chart1”).activate

activechart.chartarea.select ‘选中暂时图表地区

(73) worksheets(“sheet1”).chartobjects(“chart2”).chart. _

chartarea.interior.colorindex=2 ‘变动处事表中图表的图表区的脸色

(74) sheets(“chart2”).chartarea.interior.colorindex=2 ‘变动图表处事表中图表区的脸色

(75) charts.add ‘增添新的图表处事表

(76) activechart.setsourcedata source:=sheets(“sheet1”).range(“a1:d5”), _

plotby:=xlcolumns ‘指定图表数据源并按列陈设

(77) activechart.location where:=xllocationasnewsheet ‘新图表动作新图表处事表

(78) activechart.plotarea.interior.colorindex=xlnone ‘将画图区脸色变为白色

(79) worksheets(“sheet1”).chartobjects(1).chart. _

export filename:=“c:mychart.gif”,filtername:=“gif” ‘将图表1导出到c盘上并定名为mychart.gif

窗体

(80) msgbox “hello!” '动静框中表露动静hello

(81) ans=msgbox(“continue?”,vbyesno) '在动静框中式点心击“是”按钮,则ans值为vbyes;点击“否”按钮,则ans值为vbno。

if msgbox(“continue?”,vbyesno)vbyes then exit sub '归来值不为“是”,则退出

     (82) config=vbyesno+vbquestion+vbdefaultbutton2 '运用恒量的拉拢,赋值组config变量,并树立第二个按钮为缺省按钮

(83) msgbox “this is the first line.” & vbnewline & “second line.” '在动静框中强迫换行,可用vbcrlf包办vbnewline。

(84) msgbox "the average is :"&format(application.worksheetfunction.average(selection),"#,##0.00"),vbinformation, "selection count average" & chr(13) '运用处事表因变量归来所选地区的平衡值并按指定方法表露

(85) userform1.show ‘表露用户窗体

(86) load userform1 ‘加载一个用户窗体,但该窗体居于湮没状况

(87) userform1.hide ‘湮没用户窗体

(88) unload userform1 或 unload me ‘卸载用户窗体

(89) (图像控件).picture=loadpicture(“图像路途”) ‘在用户窗体中表露图形

(90) userform1.show 0 或 userform1.show vbmodeless ‘将窗体树立为无形式状况

(91) me.height=int(0.88*activewindow.height) ‘窗体莫大为暂时震动窗口莫大的0.88

me.width=int(0.88*activewindow.width) ‘窗体宽窄为暂时震动窗口莫大的0.88

事变

(92) application.enableevents=false '禁止使用一切事变

application.enableevents=true '起用一切事变

注:不实用于用户窗体控件触发的事变

东西

(93) set excelsheet = createobject("excel.sheet") ‘创造一个excel处事表东西

excelsheet.application.visible = true '树立 application 东西使 excel 看来

excelsheet.application.cells(1, 1).value = "data" '在表格的第一个单位中输出文本

excelsheet.saveas "c:\test.xls" '将该表格生存到c:\test.xls 目次

excelsheet.application.quit '封闭 excel

set excelsheet = nothing '开释该东西变量

(94) ‘证明并创造一个excel东西援用

dim xlapp as excel.application

dim xlbook as excel.workbook

dim xlsheet as excel.worksheet

set xlapp = createobject("excel.application")

set xlbook = xlapp.workbooks.add

set xlsheet = xlbook.worksheets(1)

(95) ‘创造并传播一个 excel.application 东西的援用

call mysub (createobject("excel.application"))

(96) set d = createobject(scripting.dictionary) ‘创造一个 dictionary 东西变量

(97) d.add "a", "athens" '为东西变量增添要害字和条件

其余

(98) application.onkey “^i”,”macro” '树立ctrl+i键为macro进程的赶快键

(99) application.cutcopymode=false ‘退出剪切/复制形式

(100) application.volatile true '不管何时处事表中大肆单位格从新计划,城市强迫计划该因变量

application.volatile false '惟有在该因变量的一个或多个参数爆发变换时,才会从新计划该因变量

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.