【学习笔记】VBA学习笔记
因为老大对我的定位是 系统+“表弟”+一点lua Python程序(原来是做unity程序的)
所以记录一下VBA学习笔记
学习笔记来源 https://www.yiibai.com/vba/
-----此为分割线-----
1. 怎么找到开发者工具,怎么拖控件,怎么切换到代码编辑器,REM或者 ‘ 注释等一些简单的东西都不表了(有程序基础的随便理解,没程序基础的百度吧)
2.MsgBox
MsgBox(Prompt[,Buttons][,Title][,Helpfile,Context])
这个是给的语法,看不懂?没关系,举个例子
(1)MsgBox(“早上好”),Prompt为必选,其他可选
(2)title就是右上角红叉叉左边的标题,这里主要说中间的Buttons
以上是网站上写的,我直接复制粘贴了,为了便于理解,我找了其中几个实验了一下,我以为是可以随机组合的,我于是写成了这样。
会报错,说明这个buttons这个参数只能选一个,并不能互相兼容,同时上述“想好了再选就是title”
(2)Msgbox返回值
将上边的buttons改了之后,讲返回值用result接受,同时输出答案。特别提示: &result前边必须有表达式,不然会报错!
result 返回值为1 / 2==确认1,取消2
如果将buttons改为2,result返回值 中止3,重试4. 忽略5
如果buttons改为3,result 分别为6 7 2
同理,其他的例如16如下只是变了一些基本的格式,下边的确定什么的,返回值是确定的。
总结一下返回值:
3. 输入框
InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context])
语法规则是这么写的,看不懂,没关系,举个例子嘛。
五个参数,分别是内容,标题,默认值,举例左上角的X的值,和Y举例左上角的Y值
通过返回值查看结果
点击确认返回输入值,点击取消返回空。(有了弹出框的基础,输入框就很好理解了)
4 VBA变量
以上关于变量的基础语法,不再赘述了,所有的程序都有相关变量的规则,差不多就不专门看了,贴在这里,便于其他同学查看。
上述我们的例子中,length也好,result也好,接收了返回值,作为一个常量存在,如果需要变量的使用,必须声明,这个在其他的语言里也是必须的,只是声明方式不同:
Dim name as type
举例:
Dim password as String
复习巩固:
1,2 为date数据的基本书写,3 以&不断的连接 &chr(10)来不断换行
为什么之前写的length也好,result也好,接收了一个数值,为什么不需要声明?
5. 常量
语法:
Const <<constant_name>> As <<constant_type>> = <<constant_value>>
实例:
Const MyInteger As Integer = 720
Const myDate As Date = #10/21/2000#
Const myDay As String = "Sunday"
MsgBox ("整数值是:" & MyInteger & Chr(10) & "myDate的值是:" & myDate & Chr(10) & "myDay 的值是:" & myDay)
主要针对日期的写法进行一个格外的关注
6. 运算符
相同的就不再赘述了,这里介绍几个原来见得比较少,或者是跟其他语言不一样的。
(1)<>
检查两个操作数的值是否不相等。如果值不相等,则条件为真。
(2)NOT
逻辑NOT
运算符。用于反转其操作数的逻辑状态。 如果条件成立,那么逻辑非运算符结果是条件不成立。(相当于C# 里的!)
(3)XOR
逻辑排除。它是NOT
和OR
运算符的组合。如果表达式中只有一个表达式的值为True
,则结果为True
。
(4)连接运算符
+ |
将两个值添加为变量,其值是数字 | A + B = 15 |
& |
连接两个值 | A & B = 510 |
+ |
连接两个值 |
A + B 的结果为MicrosoftVBScrip
|
& |
连接两个值 |
A & B 的结果为MicrosoftVBScrip
|
7 VBA 决策
不再赘述,这些都是语法基础
7.1 IF 去掉了括号
7.2 if else : if bool then 执行体 else 执行体 end if
7.3 if elseif else 只是在每一条if 或者else if 后边的判断之后加了then+执行体
7.4 switch
8. 循环语句
循环控制语句
下面是具体实例:
8.1 for
跟C系列的循环语句语法不同
For counter = start To end [Step stepcount]
[statement 1]
[statement 2]
....
[statement n]
[Exit For]
[statement 11]
[statement 22]
....
[statement n]
Next
官方给出的语法结构如上图
看不懂,不要慌,我来给你举栗子!糖炒栗子。。。emmm
Dim a As Integer
a = 10
For i = 0 To a Step 2
MsgBox ("The value is i is : " & i)
Next
for i=0 to a step 2 执行体 next ==== 几个细节,for 初始值i=x to n step m 翻译一下就是 从几到几 以几为间距 执行体 next结尾
8.2 for each
'fruits is an array
fruits = Array("苹果", "橙子", "樱桃")
Dim fruitnames As Variant
'iterating using For each loop.
For Each Item In fruits
fruitnames = fruitnames & Item & Chr(10)
Next
MsgBox fruitnames
for each item in xxx 执行体 next自己练习一下:将1 2 3 4 打印输出
8.3 while
counter=10
While Counter < 15
Counter = Counter + 1
msgbox "The Current Value of the Counter is : " & Counter
Wend
就这么简单
while 条件
执行体
wend
8.4 do while
a = 1
Do While i < 10
i = i + 1
MsgBox i
Loop
执行结果
还有第二种写法
i = 10
Do
MsgBox i
i = i + 1
Loop While i < 5
执行结果11 区别在于 do loop while一定会执行一次 而do while需要判断是否满足条件
8.5 退出循环 类似与c系列的 continue break
Exit For Exit Do
弹出循环
9 VBA 字符串 字符串函数如下
其他的函数都没有问题,就是第一个第二个看的我一脸懵逼,二脸懵逼,三脸懵逼。
=========分割线,6/20 因为昨晚被安排填表(第一次填,懵的要死,万脸懵逼)======
1. VBA 时间日期函数
https://www.yiibai.com/vba/vba_date_time.html
2. 数组
数组声明:
dim arr()
dim arr(3)
dim arr
arr=Array("1","2","3")
dim arr(2,3) 多维数组
2.1 Redim
话是这么说,完全看不懂。
也就是重新定义一个数组
如果加了prxx,还可以保留原数组的内容
我们自己做一个实验
这样的弹出结果是 z p x 空 空 3 4
如果加上preserve
结果变成了zpx zpx 3 4
方法:
split
解救区域
==================
5.事件 工作表 工作簿事件两种
6. VBA Excel对象
应用程序对象,工作簿对象,工作表对象,范围对象
3. 用户自定义函数
4. 子函数就是 sub end sub
不会有返回值
模块相当于一个公共区域,代码写里边就行
那个选择一个宏名的意思就是选择一个函数名
下方为暂时不需要了解区域:
=================
7. 文本文件
8 图表
推荐阅读
-
Java语言Consistent Hash算法学习笔记(代码示例)
-
Java语言Consistent Hash算法学习笔记(代码示例)
-
canvas学习笔记之绘制简单路径
-
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
-
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
-
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
-
Python中的类学习笔记
-
Python中的自定义函数学习笔记
-
Python异常学习笔记
-
Flask框架学习笔记(一)安装篇(windows安装与centos安装)