吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 761|回复: 7
收起左侧

[学习记录] 宏学习笔记二

[复制链接]
XMQ 发表于 2022-9-3 10:51
本帖最后由 XMQ 于 2022-9-3 11:02 编辑


2.编写宏代码(alt+f11)打开vb编辑窗口

(注释在前面加上英文的单引号)

2.1 认识vba代码基本架构,一般都会以 end xxx结尾

image.png


上面是宏代码的基本架构

2.2 例子1:按f5选择要运行的宏点击运行即可,注意空格

[Visual Basic] 纯文本查看 复制代码
Sub 第一个程序()[align=center]
    'MsgBox 弹出弹窗并显示信息[/align][align=center]
    MsgBox "这是我的第一个程序"[/align][align=center]
    '获取A1单元格的内容  & 为连接符[/align][align=center]
    MsgBox "输出A1单元格内容:" & Range("A1").Value[/align][align=center]
End Sub

运行后的示例图

image.png


语法提示(语法提示,在你打出一些vba内置的方法或者属性时会有一些参数提示,可以参考这个

image.png


2.3 变量 (  格式:Dim  变量名 As  数据类型    )

image.png

各种变量的例子

[Visual Basic] 纯文本查看 复制代码
'Sub 变量()[align=center]
'声明定义一个int变量,变量名为Score,在声明变量时可以不声明了、数据类型,但是不推荐[/align][align=center]
Dim Score As Integer[/align][align=center]
Dim R As Range, L As Long, S As String, Birthday As Date[/align][align=center]
' 把 100 赋值给 Score[/align][align=center]
Score = 180[/align][align=center]
L = 2.01[/align][align=center]
S = "大帅哥的身高:"[/align][align=center]
endRow = Range("D" & Rows.Count).End(xlUp).Row[/align][align=center]
' 日期类型数据前后要加上 #,注意格式[/align]
[align=center]
Birthday = #8/30/2022#[/align][align=center]
' 弹出 Score 的值[/align][align=center]
MsgBox S & Score & " " & L & "生日是: " & Birthday[/align][align=center]
End Sub

运行后的 示例图

] image.png


2.4  变量的作用域  (全局和函数变量,全局变量所有函数都可用,函数变量只能在指定的函数里调用)

image.png


2.5  Static  关键字

[Visual Basic] 纯文本查看 复制代码
Sub StaticTest()[align=center]
' Static 静态变量 可以记住每次的变量[/align]
[align=center]
Static Count As Integer[/align][align=center]
' 实现 Count 的累加[/align]
[align=center]
Count = Count + 1[/align]
[align=center]
MsgBox "点击了:" & Count[/align]
[align=center]
End Sub

之后的程序运行的结果图就不贴了,大家多敲代码理解理解哈!!!!


2.6  常量 (与变量的区别是常量声明时必须赋值)

[Visual Basic] 纯文本查看 复制代码
'Sub 常量测试()[align=center]
' 变量[/align][align=center]
Dim Score As Integer[/align][align=center]
' 常量(初始化要赋值),且不能进行修改[/align][align=center]
Const Pi As Double = 0[/align][align=center]
Dim Price As Long[/align][align=center]
Price = 200[/align][align=center]
MsgBox "价格:" & Price & "PI" & " " & Pi[/align][align=center]
End Sub


2.7 命名规范 (可以使用英文字母,数字,_进行命名,中文不推荐)

不能使用关键字来进行命名,开头不能是数字。

2.8  条件语句 (IF,select case ,for,do while,do until)

[Visual Basic] 纯文本查看 复制代码
#############  IF  ################[align=center]
Sub IfTest()[/align][align=center]
    Dim Score As Integer[/align][align=center]
    Score = 61[/align][align=center]
    ' if 条件判断,then 执行满足条件后的操作[/align][align=center]
    If Score >= 80 Then[/align][align=center]
        MsgBox "分数大于80"[/align][align=center]
    ElseIf Score >= 60 Then[/align][align=center]
        MsgBox "分数大于60分"[/align][align=center]
    Else[/align][align=center]
        MsgBox "分数小于60"[/align][align=center]
    End If[/align][align=center]
End Sub[/align]
[align=center]
########  select case  #####[/align][align=center]
Sub SelectTest()[/align][align=center]
    Dim Score As Integer[/align][align=center]
    Score = 88[/align]
    [align=center]
    Select Case Score[/align][align=center]
    ' Case 代表多个场景,使用 Case is 来进行判断,类似if[/align][align=center]
        Case Is >= 90[/align][align=center]
            MsgBox "优秀"[/align][align=center]
          Case Is >= 80[/align][align=center]
            MsgBox "优良"[/align][align=center]
          Case Is >= 70[/align][align=center]
            MsgBox "良好"[/align][align=center]
          Case Is >= 60[/align][align=center]
            MsgBox "及格"[/align][align=center]
        ' 条件都不满足,使用Case Else[/align][align=center]
        Case Else[/align][align=center]
            MsgBox "不及格"[/align][align=center]
    End Select[/align]
    [align=center]
End Sub[/align]
[align=center]
#####  for  ###############[/align][align=center]
Sub ForNextTest()[/align][align=center]
    Dim Score As Integer, total As Long[/align][align=center]
    ' 先赋值[/align][align=center]
    total = 0[/align][align=center]
    '连续输出10次,to 代表停止条件[/align][align=center]
    For num = 1 To 1000[/align][align=center]
         ' 1到1000相加[/align][align=center]
        total = total + num[/align][align=center]
        If num = 5 Then[/align][align=center]
            MsgBox "循环次数:" & num[/align][align=center]
        ElseIf num = 500 Then[/align][align=center]
            MsgBox "退出for循环"[/align][align=center]
            ' 退出for循环[/align][align=center]
            Exit For[/align][align=center]
        End If[/align][align=center]
        ' 每次执行加1[/align][align=center]
        Next num[/align][align=center]
    MsgBox "1到500相加的结果:" & total[/align][align=center]
End Sub[/align]
[align=center]
### 中途退出for循环 (exit for) ####[/align][align=center]
Sub forTest2()[/align][align=center]
    Dim Score As Integer, total As Long[/align][align=center]
    Score = 0[/align][align=center]
    ' 这里多了个Step 可以理解为每次都加+2(默认为1)[/align][align=center]
    For num = 1 To 100 Step 2[/align][align=center]
        total = total + num[/align][align=center]
        Next num[/align][align=center]
    MsgBox total[/align][align=center]
End Sub [/align]
[align=center]
####### Do While  ########[/align][align=center]
Sub DoWhileTest()[/align][align=center]
    Dim num As Integer, total As Long[/align][align=center]
    num = 0[/align][align=center]
    total = 0[/align][align=center]
    ' 这里表示 num 还未满足条件时则运行下面的代码[/align][align=center]
    Do While num < 10[/align][align=center]
        'MsgBox "num执行的次数" & num[/align][align=center]
        num = num + 1[/align][align=center]
        total = total + num[/align][align=center]
    Loop[/align][align=center]
    MsgBox total[/align][align=center]
End Sub[/align]
[align=center]
 ####  Do Until  ###########################[/align]

[align=center]
Sub DoUntilTest()[/align][align=center]
    Dim num As Integer, total As Long[/align][align=center]
    num = 0[/align][align=center]
    total = 0[/align][align=center]
    ' 这里表示 这里表示 当num 满足条件时停止运行[/align][align=center]
    Do Until num >= 10[/align][align=center]
        'MsgBox "num执行的次数" & num[/align][align=center]
        num = num + 1[/align][align=center]
        total = total + num[/align][align=center]
    Loop[/align][align=center]
    MsgBox total[/align][align=center]
End Sub

上面的代码有点多,建议一块快去敲会更好理解哦


2.9 有参数的子程序

[Visual Basic] 纯文本查看 复制代码
' 参数要什么数据类型[align=center]
Sub 有参测试(ToNum As Integer, ToNum2 As Integer)[/align][align=center]
    Dim num As Integer, total As Long[/align][align=center]
    For num = 1 To ToNum Step ToNum2[/align][align=center]
        total = total + num[/align][align=center]
        Next num[/align][align=center]
    MsgBox total[/align][align=center]
End Sub[/align]

[align=center]
Sub Test()[/align][align=center]
' 用无参来调用有参程序[/align][align=center]
    有参测试 500, 2[/align][align=center]
    '有参测试 (200)[/align][align=center]
    '有参测试 (100)[/align][align=center]
End Sub


3.0 自定义函数 (函数有返回值,程序没有)

[Visual Basic] 纯文本查看 复制代码
'函数 用 function 来修饰,且有返回值[align=center]
Function cubSum(x As Double, y As Double)[/align][align=center]
    cubSum = x * x * y * y * y[/align][align=center]
End Function[/align]
[align=center]
Sub FunctionTest()[/align][align=center]
    Dim v As Double[/align][align=center]
    'cubSum 函数返回结果也是浮点型[/align][align=center]
    v = cubSum(1.2, 2.5)[/align][align=center]
    MsgBox v[/align][align=center]
    'MsgBox cubSum(1.2, 2.5) 可以这样调用[/align][align=left]
End Sub


这次的基础知识更新到这,!!!

各位加油


forum.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
xiadongming 发表于 2022-9-3 11:04
提示: 作者被禁止或删除 内容自动屏蔽
lszc87 发表于 2022-9-3 11:07
jstar 发表于 2022-9-3 11:32
你好,想请教一下,VB中的static是用来干啥的呀。
urdarling 发表于 2022-9-3 12:08
这个比java简单多了 哈啊哈
qq5649 发表于 2022-9-3 12:48
大佬宏 是什么
约定的童话 发表于 2022-9-3 13:29
宏是一种自动化脚本语言的表称,Excel,按键精灵,CAD。。。。都有宏功能,学会使用会方便很多解放双手!
xpsp1 发表于 2022-9-4 10:16
非常不错,同步学习
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 07:41

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表