×

vba语法手册

vba语法手册(excel vba常用代码)

admin admin 发表于2024-06-11 15:35:07 浏览14 评论0

抢沙发发表评论

各位老铁们好,相信很多人对vba语法手册都不是特别的了解,因此呢,今天就来为大家分享下关于vba语法手册以及excel vba常用代码的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

本文目录

excel vba常用代码

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

数据类型

基本数据类型

即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 (根据分配确定)  

  • 自定义的数据类型

    相当于C语言的struct,例如:  

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

    数组

  • Option Base 0 :数组索引值从0开始  

  • 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语句清除数组元素,释放变量占用的空间  

  • 常量

    系统定义常量

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

    固有常量

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

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

    符号常量

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

    基本语法格式:

    1
  •    
  • =表达式
  •    
  • 如:Global Const 符号常量名称 = 常量值  

    语句功能:

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

    语句说明如下:  

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

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

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

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

    说明:

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

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

    变量

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

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

    声明

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

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

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

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

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

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

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

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

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

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

    赋值

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

  • 变量名=数据

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

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

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

    运算符

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

    算术运算符

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

    例子

    名称

    结果

    -$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 ”。  

    连接运算符

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

    比较运算符

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

    例子

    名称

    结果

    $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)。  

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

    例子

    名称

    结果

    $a and $b

  •    
  • And(逻辑与)

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

  •    
  • $a or $b

  •    
  • Or(逻辑或)

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

  •    
  • $a xor $b

  •    
  • Xor(逻辑异或)

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

  •    
  • Not(1》2)

  •    
  • Not(逻辑非)

  •    
  • TRUE。

  •    
  • (1》2) Eqv (1》2)

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

  •    
  • TRUE。

  •    
  • 2《》1 Imp 3《5

  •    
  • 运算符左右同为真,返回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 
  •    
  • 其中的表达式列表可以为:  

  • 表达式 例: "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)  

  • Switch(条件式1,表达式1,)

  • Choose(索引式,选项1) ’这是基于1的索引

  • 其他语句

    注释语句

    使用REM或者单引号开始的行。  

    语句的连写与续行

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

    过程与函数

    12
  •    
  • Sub 过程名(参数表)    语句块    Exit Sub    语句块End Sub  
  •    
  • 1
  •    
  • Function 函数名(参数表) As Type   语句块   函数名=表达式   Exit FunctionEnd Function
  •    
  • 可以是Private、Public、Friend、Static等修饰。  

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

    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的常用内置函数:  

  • MsgBox

  • InputBox

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

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

  • 字符串函数:  

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

  • InStr()与InStrRev: 查找子串

  • Len:字符串长度

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

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

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

  • Ucase,Lcase:大小写转换函数

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

  • Replace

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

  • StrComp:字符串比较

  • StrConv:字符串转换

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

  • StrReverse

  • 日期/时间有关函数:  

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

  • DateAdd: 日期/时间增量函数

  • DateDiff(《间隔类型》,《日期1》,《日期2》)日期/时间的距离函数

  • DatePart(《分割类型》,《日期》)时间分割函数

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

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

  • DateValue

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

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

  • Weekday:获得日期的周几

  • WeekdayName

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

  • Nz(表达式或字段属性值 

  • 验证函数:isNumeric、isDate、isNull、isEmpty、IsArray、IsError、IsMissing、IsObject  

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

  • Array:构造一个Array对象  

  • CallByName: get or set a property, or invoke a method at run time using a string name.  

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

  • Command:获取命令行参数  

  • CreateObject:创建ActiveX对象

  • CurDir:返回指定驱动器的当前工作路径  

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

  • DoEvents:暂时把CPU控制权交回给系统  

  • Environ:返回环境变量的值  

  • 文件操作:  

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

  • EOF

  • FileAttr

  • FileDateTime

  • FileLen

  • FreeFile Function

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

  • Input:读取文件

  • Loc:文件指针位置

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

  • Seek:文件指针定位

  • Spc:使用Print做position output

  • Tab:用于Print函数

  • Error:错误号对应的错误消息  

  • Windows Registry中的数据:GetAllSettings、SaveSetting、DeleteSetting、GetSetting  

  • GetObject:ActiveX组建的引用  

  • IMEStatus:返回当前Input Method Editor (IME)  

  • Macintosh平台:MacID、MacScript  

  • 金融函数:  

  • 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语句  

  • QBColor:颜色值  

  • RGB:颜色值  

  • TypeName:得到变量的类型名  

  • VarType:得到变量的类型数  

excel vba中,声明变量可以用DIM 、PUBLIC 、private等,那么static声明的变量是什么意思啊谢谢

Static 语句请参阅 示例 特性 在过程级别中使用,用于声明变量并分配存储空间。在整个代码运行期间都能保留使用 Static 语句声明的变量的值。语法Static varname . . .Static 语句的语法包含下面部分:部分 描述 varname 必需的。变量的名称;遵循标准变量命名约定。 subscripts 可选的。数组变量的维数;最多可以定义 60 维的多维数组。subscripts 参数使用下面的语法: . . . 如果不显式指定 lower,则数组的下界由 Option Base 语句控制。如果没有 Option Base 语句则下界为 0。 New 可选的。用它可以隐式地创建对象的关键字。如果使用 New 声明对象变量,则在第一次引用该变量时将新建该对象的实例,因此不必使用 Set 语句来对该对象引用赋值。New 关键字不能用来声明任何内部数据类型的变量,也不能用来声明从属对象的实例。 type 可选的。变量的数据类型;可以是 Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(对变长的字符串)、String * length(对定长的字符串)、Object、Variant、用户定义类型或对象类型。所声明的每个变量都要有一个单独的 As type 子句。 说明模块的代码开始运行后,使用 Static 语句声明的变量会一直保持其值,直至该模块复位或重新启动。可以在非静态的过程中使用 Static 语句显式声明只在该过程内可见,但具有与包含该过程定义的模块相同生命期的变量。可以在过程中使用 Static 语句来声明在过程调用之间仍能保持其值的变量的数据类型。例如,下面的语句声明了一个定长的整型数组:Static EmployeeNumber(200) As Integer下面的语句为 worksheet 的新实例声明了一个变量:Static X As New Worksheet如果在定义对象变量时没有使用 New 关键字,则在使用该变量之前,必须使用 Set 语句将一个已有的对象赋给这个引用对象的变量。在被赋值之前,所声明的这个对象变量有一个特定值 Nothing,这个值表示该变量没有指向任何对象的实例。若在声明中使用了 New 关键字,则在第一次引用对象时将新建一个该对象的实例。如果不指定数据类型或对象类型,且在模块中没有使用 Deftype 语句,则按缺省情况,定义该变量为 Variant 类型。注意 Static 语句与 Static 关键字很相似,但是针对不同的效果来使用的。如果使用 Static 关键字(如 Static Sub CountSales ())来声明一个过程,则该过程中的所有局部变量的存储空间都只分配一次,且这些变量的值在整个程序运行期间都存在。对非静态过程而言,该过程每次被调用时都要为其变量分配存储空间,当该过程结束时都要释放其变量的存储空间。Static 语句则用来在非静态的过程中声明特定的变量,以使其在程序运行期间能保持其值。在初始化变量时,数值变量被初始化为 0,变长的字符串被初始化为一个零长度的字符串 (""),而定长的字符串则用 0 填充。Variant 变量被初始化为 Empty。用户自定义类型的变量的每个元素作为各自独立的变量进行初始化。注意 如果在过程中使用 Static 语句,应和其它的声明语句(如 Dim)一样将其放在过程的开始。Static 语句示例该示例使用 Static 语句,可以在模块代码运行期间一直保持变量的值。’函数定义。Function KeepTotal(Number) ’只有 Accumulate 变量能在调用过程之间保持其值。 Static Accumulate Accumulate = Accumulate + Number KeepTotal = AccumulateEnd Function’Static 函数定义。Static Function MyFunction(Arg1, Arg2, Arg3) ’所有局部变量在函数调用之间都能保持其值。 Accumulate = Arg1 + Arg2 + Arg3 Half = Accumulate / 2 MyFunction = HalfEnd Function

vba 中判断一列或一行中 是否存在某值的语法!求高手指教

用find函数语法表达式.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, atchByte, SearchFormat)表达式 一个代表 Range 对象的变量。参数名称必选/可选数据类型描述What必选Variant要搜索的数据。可为字符串或任意 Microsoft Excel 数据类型。After可选Variant表示搜索过程将从其之后开始进行的单元格。此单元格对应于从用户界面搜索时的活动单元格的位置。请注意:After 必须是区域中的单个单元格。要记住搜索是从该单元格之后开始的;直到此方法绕回到此单元格时,才对其进行搜索。如果不指定该参数,搜索将从区域的左上角的单元格之后开始。LookIn可选Variant信息类型。LookAt可选Variant可为以下 XlLookAt 常量之一:xlWhole 或 xlPart。SearchOrder可选Variant可为以下 XlSearchOrder 常量之一:xlByRows 或 xlByColumns。SearchDirection可选XlSearchDirection搜索的方向。MatchCase可选Variant如果为 True,则搜索区分大小写。默认值为 False。MatchByte可选Variant只在已经选择或安装了双字节语言支持时适用。如果为 True,则双字节字符只与双字节字符匹配。如果为 False,则双字节字符可与其对等的单字节字符匹配。SearchFormat可选Variant搜索的格式。

Excel 关于VBA中IF多条件语句的用法,虚心求教

1、if语句的含义:if语句字面意思就是如果的意思,如果条件为真,那么就执行if语句里面的程序,这个程序,一般指then后面的,一个if语句可以没有end if,但绝对不能没有then,这一点是要注意的。

2、if……then……结构

该结构一般用于比较简单的判断语句执行,下面以一段实例程序来讲解。

实例:如果第一个单元格不为空,那么就弹出一个提示框“单元格不为空”。

程序:  

Sub 判断语句()

If Cells(1, 1) 《》 "" Then MsgBox "单元格不为空"

End Sub

3、if……then……end if结构

该结构用于单选择判断语句执行,具体用法看下面实例。

实例:对于第一列的第一行到第十行单元格,作如下判断,如果单元格为空值了那么在相应的第二列单元格输出“VBA教研室”。

程序:

Sub 判断语句()

Dim i As Integer

For i = 1 To 100

If Cells(i, 1) = "" Then

Cells(i, 2) = "VBA教研室"

Exit For

End If

Next

End Sub

4、if ……then……else……end if结构

该结构用于事件只有两个可能的情况先选择的判断语句,具体见下面实例分析。

实例:对于第一列的第1,2行两个单元格做判断,如果单元格值为空,则在相应的第二列单元格输出false,否则输出Ture。

程序:

Sub 判断语句()

Dim i As Integer

For i = 1 To 2

If Cells(i, 1) = "" Then

Cells(i, 2) = "false"

Else

Cells(i, 2) = "True"

End If

Next

End Sub

5、if ……then……elseif……then……else……end if结构

该结构用于多条件判断语句执行,具体见下面实例分析

实例:对三名同学的成绩作出判断,大于等于80分的为优秀;60到80之间的为及格;0到60分之间的为不及格;0分为考试无效。

程序:

Sub 判断语句()

Dim i As Integer

For i = 2 To 7

If Cells(i, 2) 》= 80 Then

Cells(i, 3) = "优秀"

ElseIf Cells(i, 2) 《 80 And Cells(i, 2) 》= 60 Then

Cells(i, 3) = "及格"

ElseIf Cells(i, 2) 《 60 And Cells(i, 2) 》 0 Then

Cells(i, 3) = "不及格"

Else

Cells(i, 3) = "考试无效"

End If

Next

End Sub

6、if语句嵌套使用

if语句可以灵活的嵌套使用的,如下面这套程序

Sub 判断语句()

Sub 判断语句()

If Cells(1, 1) 《》 "" Then

If Cells(1, 1) = "VBA教研室" Then

MsgBox "OK!"

Else

MsgBox "NO!"

End If

End If

End Sub

用VBA select case语法

Private Sub CB1_Click()

Select Case Sheet1.Range("A1")

Case "A"

Sheet1.Range("A3") = "联想"

Case "B"

Sheet1.Range("A3") = "华硕"

Case "C"

Sheet1.Range("A3") = "惠普"

Case "D"

Sheet1.Range("A3") = "IBM"

Case "E"

Sheet1.Range("A3") = "三星"

Case Else

Sheet1.Range("A3") = "不知道"

End Select

End Sub

扩展资料:

Select Case结构提供了 If...Then...ElseIf结构的一个变通形式,可以从多个语句块中选择执行其中的一个。Select Case语句提供的功能与 If...Then...Else语句类似,但是可以使代码更加简练易读。

Select Case结构在其开始处使用一个只计算一次的简单测试表达式。表达式的结果将与结构中每个 Case 的值比较。如果匹配,则执行与该Case 关联的语句块,示例代码如下:

Dim value ’定义一个变量

value = 10 ’变量赋值为10Select Case value ’判断变量的值大小,如果相等则输出变量值

Case 0 MsgBox 0

Case 1 MsgBox 1

Case 2 MsgBox 2

Case Else MsgBox "数值超出范围!" ’如过都不相等,则输出”数值超出范围!”End Select    

注意:Select Case结构只计算开始处的一个表达式(只计算一次),而 If...Then...ElseIf 结构计算每个 ElseIf 语句的表达式,这些表达式可以各不相同。仅当每个 ElseIf 语句计算的表达式都相同时,才可以使用 Select Case 结构代替If...Then...ElseIf 结构。

EXCEL的VBA中“ontime”如何使用,语法怎样,我是初学者,请高手尽量说详细

Application.OnTime 方法 安排一个过程在将来的特定时间运行(既可以是具体指定的某个时间,也可以是指定的一段时间之后)。语法表达式.OnTime(EarliestTime, Procedure, LatestTime, Schedule)表达式 一个代表 Application 对象的变量。参数名称 必选/可选 数据类型 描述 EarliestTime 必选 Variant 希望此过程运行的时间。 Procedure 必选 String 要运行的过程名。 LatestTime 可选 Variant 过程开始运行的最晚时间。例如,如果 LatestTime 参数设置为 EarliestTime + 30,且当到达 EarliestTime 时间时,由于其他过程处于运行状态而导致 Microsoft Excel 不能处于“就绪”、“复制”、“剪切”或“查找”模式,则 Microsoft Excel 将等待 30 秒让第一个过程先完成。如果 Microsoft Excel 不能在 30 秒内回到“就绪”模式,则不运行此过程。如果省略该参数,Microsoft Excel 将一直等待到可以运行该过程为止。 Schedule 可选 Variant 如果为 True,则预定一个新的 OnTime 过程。如果为 False,则清除先前设置的过程。默认值为 True。 说明使用 Now + TimeValue(time) 可安排经过一段时间(从现在开始计时)之后运行某个过程。使用 TimeValue(time) 可安排某个过程只运行指定的时间。示例本示例设置从现在开始 15 秒后运行 my_Procedure。Visual Basic for Applications Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure" 本示例设置 my_Procedure 在下午 5 点开始运行。Visual Basic for Applications Application.OnTime TimeValue("17:00:00"), "my_Procedure" 本示例撤消前一个示例对 OnTime 的设置。Visual Basic for Applications Application.OnTime EarliestTime:=TimeValue("17:00:00"), _ Procedure:="my_Procedure", Schedule:=False 其实像这种EXCEL VBA内置函数,你可以打开帮助查找F1

请高手指点:EXCEL VBA中WITH的语法和用法

我学习过的教程摘录一段:在一个单一对象或一个用户定义类型上执行一系列的语句。语法With objectEnd With With 语句的语法具有以下几个部分:部分 描述 object 必要参数。一个对象或用户自定义类型的名称。 statements 可选参数。要执行在 object 上的一条或多条语句。 说明With 语句可以对某个对象执行一系列的语句,而不用重复指出对象的名称。例如,要改变一个对象的多个属性,可以在 With 控制结构中加上属性的赋值语句,这时候只是引用对象一次而不是在每个属性赋值时都要引用它。下面的例子显示了如何使用 With 语句来给同一个对象的几个属性赋值。With MyLabel .Height = 2000 .Width = 2000 .Caption = "This is MyLabel"End With注意 当程序一旦进入 With 块,object 就不能改变。因此不能用一个 With 语句来设置多个不同的对象。可以将一个 With 块放在另一个之中,而产生嵌套的 With 语句。但是,由于外层 With 块成员会在内层的 With 块中被屏蔽住,所以必须在内层的 With 块中,使用完整的对象引用来指出在外层的 With 块中的对象成员。重点 一般来说,建议您不要跳入或跳出 With 块。如果在 With 块中的语句被执行,但是 With 或 End With 语句并没有执行,则一个包含对该对象引用的临时变量将保留在内存中,直到您退出该过程。。With 语句示例本示例使用 With 语句对某单一对象执行一系列的语句。MyObject 对象及其属性均为示范目的而采用了通用名称。With MyObject .Height = 100 ’ 和 MyObject.Height 一样等于 100 。 .Caption = "Hello World" ’ 和 MyObject.Caption 一样等于 "Hello World" 。 With .Font .Color = Red ’ 和 MyObject.Font.Color 一样等于 Red。 .Bold = True ’ 和 MyObject.Font.Bold 一样等于 True 。 End WithEnd With祝你成功!

VBA的语法格式,以及在excel中是如何使用的

这个问题的含金量就大了,首先VBA是OFFICE软件内置的二次开发功能,以VB代码作为编程语言,窗口称为VBE。下面简单的回答下容易理解的几个点。

  1. 在EXCEL中的使用方法:使用快捷键ALT+F11  或者在菜单栏中通过“开发工具”---“Visual Basic”选项卡都可以进入VBE窗口进行VBA代码。

  2. 如果找不到“开发工具”选项卡,对照2007和2010版本的EXCEL可以点击“文件”(2007是圆形的OFFICE图标)--“选项”---“自定义功能选项”,勾选“开发工具”并确定,如下图

代码的使用及简单的示例:

  1. 代码的关联使用:在VBA中,各个EXCEL的部件(工作簿、工作表、按钮及其他各种空间)称为对象,对象拥有“属性”,而对象的操作称为“方法”,见示例程序:

  2. VBA的强大超乎你的想象,对表格的处理能力也能极大的提高你的工作效率,他不像函数公式那样容易被删除或误改。

  3. 一些简单和常用的方法有for next  循环   if (elseif   else)end if  判定   .find 查找等等。

  4. 如果你感兴趣,可以系统的认识和学习一下,它并没有这么难,但是需要持续的学习以丰富你的知识库。

  5. 推荐像"EXCELHOME 论坛 "    "EXCEL精英培训"  等一些特别棒的网站和论坛。

sub 示例()msgbox sheet1.name ’调用sheet1的名称,并弹出。这是调用对象的属性shett1.name = "表1" ’对shhet1进行命名, 这是对象的赋值方法end sub

excel vba常用代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于excel vba常用代码、excel vba常用代码的信息别忘了在本站进行查找哦。