宏学习笔记二
本帖最后由 XMQ 于 2022-9-3 11:02 编辑2.编写宏代码(alt+f11)打开vb编辑窗口
(注释在前面加上英文的单引号)
2.1 认识vba代码基本架构,一般都会以 end xxx结尾
上面是宏代码的基本架构
2.2 例子1:按f5选择要运行的宏点击运行即可,注意空格
Sub 第一个程序()
'MsgBox 弹出弹窗并显示信息
MsgBox "这是我的第一个程序"
'获取A1单元格的内容& 为连接符
MsgBox "输出A1单元格内容:" & Range("A1").Value
End Sub
运行后的示例图:
语法提示(语法提示,在你打出一些vba内置的方法或者属性时会有一些参数提示,可以参考这个)
2.3 变量 (格式:Dim变量名 As数据类型 )
各种变量的例子
'Sub 变量()
'声明定义一个int变量,变量名为Score,在声明变量时可以不声明了、数据类型,但是不推荐
Dim Score As Integer
Dim R As Range, L As Long, S As String, Birthday As Date
' 把 100 赋值给 Score
Score = 180
L = 2.01
S = "大帅哥的身高:"
endRow = Range("D" & Rows.Count).End(xlUp).Row
' 日期类型数据前后要加上 #,注意格式
Birthday = #8/30/2022#
' 弹出 Score 的值
MsgBox S & Score & " " & L & "生日是: " & Birthday
End Sub
运行后的 示例图
]
2.4变量的作用域(全局和函数变量,全局变量所有函数都可用,函数变量只能在指定的函数里调用)
2.5Static关键字
Sub StaticTest()
' Static 静态变量 可以记住每次的变量
Static Count As Integer
' 实现 Count 的累加
Count = Count + 1
MsgBox "点击了:" & Count
End Sub
之后的程序运行的结果图就不贴了,大家多敲代码理解理解哈!!!!
2.6常量 (与变量的区别是常量声明时必须赋值)
'Sub 常量测试()
' 变量
Dim Score As Integer
' 常量(初始化要赋值),且不能进行修改
Const Pi As Double = 0
Dim Price As Long
Price = 200
MsgBox "价格:" & Price & "PI" & " " & Pi
End Sub
2.7 命名规范 (可以使用英文字母,数字,_进行命名,中文不推荐)
不能使用关键字来进行命名,开头不能是数字。
2.8条件语句 (IF,select case ,for,do while,do until)
#############IF################
Sub IfTest()
Dim Score As Integer
Score = 61
' if 条件判断,then 执行满足条件后的操作
If Score >= 80 Then
MsgBox "分数大于80"
ElseIf Score >= 60 Then
MsgBox "分数大于60分"
Else
MsgBox "分数小于60"
End If
End Sub
########select case#####
Sub SelectTest()
Dim Score As Integer
Score = 88
Select Case Score
' Case 代表多个场景,使用 Case is 来进行判断,类似if
Case Is >= 90
MsgBox "优秀"
Case Is >= 80
MsgBox "优良"
Case Is >= 70
MsgBox "良好"
Case Is >= 60
MsgBox "及格"
' 条件都不满足,使用Case Else
Case Else
MsgBox "不及格"
End Select
End Sub
#####for###############
Sub ForNextTest()
Dim Score As Integer, total As Long
' 先赋值
total = 0
'连续输出10次,to 代表停止条件
For num = 1 To 1000
' 1到1000相加
total = total + num
If num = 5 Then
MsgBox "循环次数:" & num
ElseIf num = 500 Then
MsgBox "退出for循环"
' 退出for循环
Exit For
End If
' 每次执行加1
Next num
MsgBox "1到500相加的结果:" & total
End Sub
### 中途退出for循环 (exit for) ####
Sub forTest2()
Dim Score As Integer, total As Long
Score = 0
' 这里多了个Step 可以理解为每次都加+2(默认为1)
For num = 1 To 100 Step 2
total = total + num
Next num
MsgBox total
End Sub
####### Do While########
Sub DoWhileTest()
Dim num As Integer, total As Long
num = 0
total = 0
' 这里表示 num 还未满足条件时则运行下面的代码
Do While num < 10
'MsgBox "num执行的次数" & num
num = num + 1
total = total + num
Loop
MsgBox total
End Sub
####Do Until###########################
Sub DoUntilTest()
Dim num As Integer, total As Long
num = 0
total = 0
' 这里表示 这里表示 当num 满足条件时停止运行
Do Until num >= 10
'MsgBox "num执行的次数" & num
num = num + 1
total = total + num
Loop
MsgBox total
End Sub
上面的代码有点多,建议一块快去敲会更好理解哦
2.9 有参数的子程序
' 参数要什么数据类型
Sub 有参测试(ToNum As Integer, ToNum2 As Integer)
Dim num As Integer, total As Long
For num = 1 To ToNum Step ToNum2
total = total + num
Next num
MsgBox total
End Sub
Sub Test()
' 用无参来调用有参程序
有参测试 500, 2
'有参测试 (200)
'有参测试 (100)
End Sub
3.0 自定义函数 (函数有返回值,程序没有)
'函数 用 function 来修饰,且有返回值
Function cubSum(x As Double, y As Double)
cubSum = x * x * y * y * y
End Function
Sub FunctionTest()
Dim v As Double
'cubSum 函数返回结果也是浮点型
v = cubSum(1.2, 2.5)
MsgBox v
'MsgBox cubSum(1.2, 2.5) 可以这样调用
End Sub
这次的基础知识更新到这,!!!
各位加油{:301_997:}
加油,一起学习 你好,想请教一下,VB中的static是用来干啥的呀。 这个比java简单多了 哈啊哈 大佬宏 是什么 宏是一种自动化脚本语言的表称,Excel,按键精灵,CAD。。。。都有宏功能,学会使用会方便很多解放双手! 非常不错,同步学习
页:
[1]