【vba】vba语言基础

  • 数据类型
    在这里插入图片描述
  • 变量和作用域

(1)VBA允许使用未定义的变量,默认是变体变量

(2)在模块通用说明部分,加入Option Explicit语句可以强迫用户进行变量定义

(3)变量定义语句及变量作用域
在这里插入图片描述
一般变量作用域的原则是,那部分定义就在那部分起作用,模块中定义则在该模块那作用。

  • 数组

    • 数组必须用Global或Dim语句来定义:
    • 除了以上固定数组外,VBA 还有一种功能强大的动态数组,定义时无大小维数声明;在程序中再利用Redim语句来重新改变数组大小,原来数组内容可以通过加preserve关键字来保留。
      如下例:
      Dim array1() as double : Redim array1(5) : array1(3)=250 : Redim preserve array1(5,10)
  • 对对象的赋值采用:set myobject=object 或 myobject:=object

  • 以单引号或者Rem开头的行是注释。

  • 书写规范

    • (1)VBA不区分标识符的字母大小写,一律认为是小写字母;
    • (2)一行可以书写多条语句,各语句之间以冒号 : 分开;
    • (3)一条语句可以多行书写,以空格加下划线 _ 来标识下行为续行
  • 条件判断语句

    • If condition Then [statements][Else elsestatements]
    • If condition Then
      [statements]
      [ElseIf condition-n Then
      [elseifstatements] ...
      [Else
      [elsestatements]]
      End If
      
    • Select Case  Pid
      Case  “A101”
      Price=200
      Case  “A102”
      Price=300
      ……
      Case Else
      Price=900
      End Case
      
    • Choose 函数???
    • Switch函数???
    • For counter = start To end [Step step]                  'step 缺省值为1
      [statements]
      [Exit For]
      [statements]
      Next [counter]
      
    • For Each element In  group
      Statements
      [Exit for]
      Statements
      Next  [element]
      
      
    • With object
      [statements]
      End With
      
    • Do {while |until} condition' while 为当型循环,until为直到型循环,顾名思义,不多说啦
      Statements
      Exit do
      Statements
      Loop
      
      或者使用下面语法:
      Do                                    ' 先do 再判断,即不论如何先干一次再说
      Statements
      Exit do
      Statements
      Loop {while |until} condition
      
  • 错误处理语句

二.错误语句处理
执行阶段有时会有错误的情况发生,利用OnError语句来处理错误,启动一个错误的处理程序。
语法如下:

On Error Goto Line        ‘当错误发生时,会立刻转移到line行去
On Error Resume Next    ‘当错误发生时,会立刻转移到发生错误的下一行去
On Erro Goto 0             ‘当错误发生时,会立刻停止过程中任何错误处理过程

  • 过程和函数

    • VBA具有四种过程:Sub 过程、Function函数、Property属性过程和Event事件过程。
  • 两种传值方式ByVal和ByRef

  • 调用过程需要在被调用过程的前面加上call

  • 函数调用,调用方法不确定。

  • vab有大量内置函数

  • 添加控件时,同时按下alt会自动适应单元格大小。

  • F5快速运行过程或程序。

  • Dim array_name(n) As type (其中n是数组元素的个数)
    例如,如果要创建保存10个学生名字的数组,可以用以下语句:
    Dim s学生名字(9) As Integer
    注意,括号中的数字是9而不是10.这是因为在默认的情况下,第一个索引数字是0.

  • 动态数组

Dim dyn_array() As type
对数组声明后可以在程序运行时用:ReDim语句指定数组的大小:

ReDim dyn_array()(array_size)
参数array_size代表数组的新大小。如果要保留数组的数值,请在ReDim语句后使用保留字Preserve,具体语法如下:
ReDim Preserve dyn_array(array_size)
  • 设置权限

    • 通过控制excel某个工作表将要被激活的时候,进行相关的判断,拒绝其打开。
  • 提高vba程序运行效率的方法:

    • 尽量使用VBA原有的属性、方法和Worksheet函数
    • 尽量减少使用对象引用,尤其在循环中
    • 减少对象的激活和选择
    • 关闭屏幕更新
  • 可以写定时程序,目前用不到

VBA是什么   直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言.例如:可以用EXCEL的宏语言来使EXCEL自动化,使用WORD BASIC使WORD自动化,等等.微软决定让它开发出来的应用程序共享一种通用的自动化语言--------Visual Basic For Application(VBA),可以认为VBA是非常流行的应用程序开发语言VASUAL BASIC 的子集.实际上VBA是"寄生于"VB应用程序的版本.VBA和VB的区别包括如下几个方面:   1. VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(EXCEL等)自动化   2. VB具有自己的开发环境,而VBA必须寄生于已有的应用程序.   3. 要运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序是可执行文件(*.EXE),而VBA开发的程序必须依赖于它的"父"应用程序,例如EXCEL.   尽管存在这些不同,VBA和VB在结构上仍然十分相似.事实上,如果你已经了解了VB,会发现学习VBA非常快.相应的,学完VBA会给学习VB打下坚实的基础.而且,当学会在EXCEL中用VBA创建解决方案后,即已具备在WORD ACCESS OUTLOOK FOXPRO PROWERPOINT 中用VBA创建解决方案的大部分知识.   * VBA一个关键特征是你所学的知识在微软的一些产品中可以相互转化.   * VBA可以称作EXCEL的"遥控器".   VBA究竟是什么?更确切地讲,它是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案.    此外,如果你愿意,还可以将EXCEL用做开发平台实现应用程序. …… …… …… …… …… …… 欢迎使用 VBScript 语言参考 通过对信息进行分组,可以使您方便地研究 Visual Basic 脚本的各个主题。 可以在“字母顺序关键字列表”中找到 VBScript 语言的所有主题。如果只需要查看某个主题(例如对象),则有对该主题进行详细说明的章节可供查阅。 如何操作呢?单击左边任意一个标题,即可显示该标题所包含的项目列表。从该列表中选择要查看的主题。打开所选主题之后,就能够很容易地链接到其他相关章节。 好了,现在就开始行动,赶快进去看一看吧!学习几个语句,研究几种方法,或者熟悉几个函数。您会发现 VBScript 语言的功能是多么强大。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值