欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【学习笔记】VBA学习笔记

程序员文章站 2022-03-16 18:20:59
...

因为老大对我的定位是 系统+“表弟”+一点lua Python程序(原来是做unity程序的)

所以记录一下VBA学习笔记

学习笔记来源 https://www.yiibai.com/vba/

-----此为分割线-----

1.  怎么找到开发者工具,怎么拖控件,怎么切换到代码编辑器,REM或者 ‘  注释等一些简单的东西都不表了(有程序基础的随便理解,没程序基础的百度吧)

2.MsgBox

MsgBox(Prompt[,Buttons][,Title][,Helpfile,Context])

这个是给的语法,看不懂?没关系,举个例子

(1)MsgBox(“早上好”),Prompt为必选,其他可选

【学习笔记】VBA学习笔记

(2)title就是右上角红叉叉左边的标题,这里主要说中间的Buttons

【学习笔记】VBA学习笔记

以上是网站上写的,我直接复制粘贴了,为了便于理解,我找了其中几个实验了一下,我以为是可以随机组合的,我于是写成了这样。

【学习笔记】VBA学习笔记

会报错,说明这个buttons这个参数只能选一个,并不能互相兼容,同时上述“想好了再选就是title”

【学习笔记】VBA学习笔记

(2)Msgbox返回值

【学习笔记】VBA学习笔记

将上边的buttons改了之后,讲返回值用result接受,同时输出答案。特别提示: &result前边必须有表达式,不然会报错!

result 返回值为1 / 2==确认1,取消2

【学习笔记】VBA学习笔记

如果将buttons改为2,result返回值 中止3,重试4. 忽略5

【学习笔记】VBA学习笔记

如果buttons改为3,result 分别为6 7 2

【学习笔记】VBA学习笔记

同理,其他的例如16如下只是变了一些基本的格式,下边的确定什么的,返回值是确定的。

【学习笔记】VBA学习笔记

总结一下返回值:

【学习笔记】VBA学习笔记


3. 输入框

InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context])

语法规则是这么写的,看不懂,没关系,举个例子嘛。

【学习笔记】VBA学习笔记

五个参数,分别是内容,标题,默认值,举例左上角的X的值,和Y举例左上角的Y值

【学习笔记】VBA学习笔记

通过返回值查看结果

【学习笔记】VBA学习笔记

点击确认返回输入值,点击取消返回空。(有了弹出框的基础,输入框就很好理解了)


4 VBA变量

【学习笔记】VBA学习笔记

以上关于变量的基础语法,不再赘述了,所有的程序都有相关变量的规则,差不多就不专门看了,贴在这里,便于其他同学查看。

上述我们的例子中,length也好,result也好,接收了返回值,作为一个常量存在,如果需要变量的使用,必须声明,这个在其他的语言里也是必须的,只是声明方式不同:

Dim name as type

举例:

Dim password as String

复习巩固:

【学习笔记】VBA学习笔记

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逻辑排除。它是NOTOR运算符的组合。如果表达式中只有一个表达式的值为True,则结果为True

(4)连接运算符

 

+ 将两个值添加为变量,其值是数字 A + B = 15
& 连接两个值 A & B = 510

+ 连接两个值 A + B 的结果为MicrosoftVBScrip
& 连接两个值 A & B 的结果为MicrosoftVBScrip



7 VBA 决策

【学习笔记】VBA学习笔记

不再赘述,这些都是语法基础

7.1 IF 去掉了括号

【学习笔记】VBA学习笔记

 

7.2  if else : if bool then 执行体 else 执行体 end if

【学习笔记】VBA学习笔记


7.3 if elseif else   只是在每一条if 或者else if 后边的判断之后加了then+执行体

【学习笔记】VBA学习笔记


7.4 switch

【学习笔记】VBA学习笔记



8. 循环语句

【学习笔记】VBA学习笔记

循环控制语句

【学习笔记】VBA学习笔记

下面是具体实例:

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 打印输出

【学习笔记】VBA学习笔记


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 字符串 字符串函数如下

【学习笔记】VBA学习笔记

其他的函数都没有问题,就是第一个第二个看的我一脸懵逼,二脸懵逼,三脸懵逼。


=========分割线,6/20 因为昨晚被安排填表(第一次填,懵的要死,万脸懵逼)======

1. VBA 时间日期函数

https://www.yiibai.com/vba/vba_date_time.html


2. 数组

数组声明:

【学习笔记】VBA学习笔记

dim arr()

dim arr(3)

dim arr

arr=Array("1","2","3")

dim arr(2,3) 多维数组

2.1 Redim

【学习笔记】VBA学习笔记

话是这么说,完全看不懂。

【学习笔记】VBA学习笔记

也就是重新定义一个数组

如果加了prxx,还可以保留原数组的内容

我们自己做一个实验

【学习笔记】VBA学习笔记

这样的弹出结果是 z p x 空 空 3 4

如果加上preserve

结果变成了zpx zpx 3 4


方法:

【学习笔记】VBA学习笔记

【学习笔记】VBA学习笔记 split


解救区域

==================

5.事件  工作表 工作簿事件两种

6.  VBA Excel对象

应用程序对象,工作簿对象,工作表对象,范围对象

3. 用户自定义函数

4. 子函数就是 sub end sub

不会有返回值

模块相当于一个公共区域,代码写里边就行

那个选择一个宏名的意思就是选择一个函数名

==================



下方为暂时不需要了解区域:

=================

7. 文本文件

8 图表

=================



相关标签: VBA