VBA基础知识
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VBA基础知识
1、VBA有三种程序类型:宏程序、自定义函数程序、事件程序
1)宏程序
Sub A()’公用程序,可以被其它程序调用
Range("a1”)= 100
End Sub
Private Sub A()’私有程序,不可以被其它程序调用
Range(”a1")= 100
End Sub
调用实例1):
Sub A()
Range("a1”)= 100
End Sub
Sub B()
Call A ’Call为调用命令,也可以省略
End Sub
调用实例2):
Sub 统计(N)
If N = 1 Then
Range(”C2")= Application。WorksheetFunction.CountA(Range(”a:a")) ElseIf N = 0 Then
Range(”D2”)= Application.WorksheetFunction.Sum(Range(”a:a"))End Sub
Sub 计数()
统计1
End Sub
Sub 求和()
统计0
End Sub
2)自定义函数程序
Function 工作表数量()
工作表数量=Sheets.Count '取工作表个数
End Sub
应用:(1)可以在单元格中直接调用:例在A1中输入:=工作表数量()(2)程序中调用:Sub A1中输入工作表数量()
Range (“A1”) = 工作表数量'调用自定义函数
End Sub
3)事件程序
例如程序在打开工作表时触发:
Private Sub Workbook_Open()
Range (“A1”) = 100
End Sub
Sub mycopy()
Range(”A1”)。Copy Range(”B1”) '将A1单元格里的数据复制到B1单元格End Sub
Sub mydel()
Sheets("sheet1”)。Delete '删除工作表sheet1
End Sub
常用的函数:&(连接函数);\(整除函数);mod(求余数函数)
2、With语句:
'未使用with语句
Sub 字体格式1()
Range("A1") = ”宋体”
Range(”A1")。Font.Size = 14
Range("A1").Font.ColorIndex = 3
Range(”A1")。Font。Bold = True
End Sub
'使用with语句
Sub 字体格式1()
With Range("A1").Font
。Name = ”宋体”
.Size = 14
.ColorIndex = 3
.Bold = True
End With
End Sub
3、If语句:
1)单条件判断:
Sub 正数()
If Range("a1").Value 〉0 Then
Range("a2”)。Value = “正数”
Else
Range(”a2").Value = “非正数”
End If
End Sub
2)多条件判断:
Sub 正数()
If Range("c1”)。Value > 0 Then
Range(”d1”)。Value = "大于零”
ElseIf Range(”c1")。Value 〈0 Then
Range("d1")。Value = "小于零”
ElseIf Range("c1")。Value = 0 Then
Range("d1”)。Value = "等于零”
End If
End Sub
Sub 判断男女()
If Range("c1").Value = 1 Then
Range(”d1").Value = ”男"
ElseIf Range(”c1")。Value = 0 Then
Range(”d1").Value = ”女"
Else
Range(”d1”)。Value = "非男非女"
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call 判断男女’调用上面子程序,当单元格数值改变时触发子程序运行End Sub
3)使用Select Case语句:
Sub 多重判断()
Select Case Range("a1")
Case Is 〈0
Range(”b1")= "小于零”
Case Is > 0
Range(”b1”) = ”大于零”
Case Is = 0
Range(”b1”)= ”等于零"
End Select
End Sub
4)循环语句:
'循环语句,从A1~A100依次填入1~100
Sub a()
Dim x ’定义变量X
For x = 1 To 100
Range(”a" &x)= x
Next x
End Sub
Sub a()
Dim x '定义变量X
For x = 1 To 100 Step 2
Range("a” & x) = x
Next x
End Sub
4、模块:
普通模块:无事件
类模块:有事件
工作表和工作簿是类模块,窗体也是类模块