实用技能|VBA基础操作
-
VBA真的是工作中十分常用的了,次次实习次次用,以前都是自学+写好的码改改就好,这学期又从头学了一遍最基础的操作~
按照五个部分来简单介绍一下:
-
1 introduction
-
2 User-defined functions
-
3 Contol-flow statements
-
4 Arrays
-
5 Objects
1 Introduction
小贴士:alt+F11快捷键打开VB界面,F5执行代码,一定要储存为.xlsm不然里面的宏会丢失。
基本操作:
VBA是在module里编程,sub作为里面的一个个更小的模块运行,每个sub互不影响。
Sub Name [(Arguments)(As type)] [Statements] End Sub
其中arguments和as type都可以没有定义
举例:输入名字并返回:
Sub Name() Name=inputbox("Enter your name:") Msgbox("My name is " & Name & ".") End Sub
2 User-Defined Functions
- Declaring constant
在模块的开始,我们申明变量之后,下面的sub都可以使用这些变量,如果没有申明的话,sub之间不同变量(如果有相同名称)不会有影响。
Const name[As Type] = value PublicConst name[As Type] = value
- Declare variable
一定要先declare variable后写,不然默认为variant(既可以是文本,也可以是数据),后面代码写好后会出现问题。
Dim variable_name as Type
- Function
就像python一样,写好function后面可以在任意sub里面调用,方便快捷。
Function name([Arg 1 as Type 1, Arg 2 as Type 2...])[As Type] [Statements] name = expression End Function
举个栗子:三个数的加和
Function Sum3Numbers(a as Double, b as Double, c as Double) Sum3Numbers = a + b + c End Function
如果需要调用Excel内置的函数:
Application.WorksheetFunction.(function)
3 Control-Flow Statements
- 常用operators
1)if
就是if, then, else, else if, end if叠加。
有三种用法
Type 1: one line syntax result = iif (statement, statement if true, statement if false) Type 2: one line if if (condition) Then (result = value if true) Else (result = value if false) Type 3: if Syntax If (condition) Then [Statement] Else if (condition2) Then [Statement] Else [Statement] End if
2)Select case
不想用if的时候可以用用这个
Select Case (test variable) Case (expression) [Statement] Case Else (expression) [else statement] End Select
举个栗子:
3)Do...Loop
有两种写法:
4)For...Next Loop
4 Arrays
- Declare an array
跟定义其他类型的变量一样,
Dim Arr(3) as Double/ Variant...
Array默认由0开始,如果想从1开始,那么有两种做法:第一是在module的最开始写上:
Option base 1
;或者直接写Dim Arr(1 to 3)
。- Dynamic Array
如果开始定义一个array为arr(3),后面如果想增加他的长度可以用:
Redim arr(5)
,此时需要注意如果直接Redim会使得前面的数据arr(3)都消失,此时我们加上Redim Preserve arr(5)
就会保留arr(3)之前输入的内容。- Multidimensional array
具体用法:
- Size of the array
如果想要知道这个arr的upper bound和lower bound,我们可以用
UBound(Arr) LBound(Arr)
5 Objects
快捷键F2打开object browser,就可以看到如何对workbook, worksheet, range和cells进行操作。
这个没什么好讲的,打开object browser就可以看怎么做了(其实是我懒了。。。)平时上班操作一般都用这一部分进行不同的操作,进行增加一个表,填入数据,等等的操作......一定要好好掌握鸭!
-