vba中取小数点后两位数_VBA学习笔记1

本文介绍了VBA的基础知识,包括调出开发工具、VBE界面操作、数据类型、变量、常量、字符串函数以及流程控制。特别强调了如何在VBA中取小数点后两位数,并提供了相关函数的使用示例。此外,还提到了编程习惯和调试工具的使用,以及通过实践练习加深理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

12d2ba2e9054cf7dd3ac58139b35b83f.png

学习资源:《全民一起VBA基础篇(Excel数据处理)》 杨洋老师

一. VBA界面操作

  1. ​ 调出开发工具

依次点击“文件”->“选项”->“自定义功能区”,在右侧主选项卡下面的选项中,找到“开发工具”,在前面的小框打勾,确定,即可在菜单栏看到有开发工具。

ae58dacb94b76c92e12f92878c7400ff.gif

2. VBE界面(Visual Basic Editor)

菜单栏 -> 开发工具 -> 查看代码

快捷键:Alt + F11

常用标准代码,存放在模块。如没有看到模块,在工程资源管理器单击右键,插入模块即可。

c118fb4402c55bc5b7beebb8693fc528.png

e1e299a949f12007ed7e5b1185955331.png

cb75b151aa80fc38fce6689a853f0d53.png

二. 程序设计

  1. 数据类型

①字符串 String

②数字类型:整型 Integer、长整型 Long、单精度浮点型 Single(小数点后最多6位)、双精度浮点型 Double(小数点后最多14位)。

③日期型 Date

④布尔型 Boolean:TrueFalse.

⑤变体型 Variant(不知道是什么类型,可定义为variant,但这种操作应当尽量避免)

2. 变量

用于保存在程序运行过程中需要临时保存的值或对象。

定义变量:Dim 变量名 (As 数据类型)

Dim i as Integer
i=6

1)第一个字符必须是字母。

2)名字中可以包含字母、数字和下划线。

3)名字中不能包含空格、句号、惊叹号,也不能包含字符@、&、$和#。

4)名字中最多包含255个字符。

3. 常量

用于保存不会发生变化的数据。

定义常量:Const 常量名 As 数据类型 = 常量的值

Const pi As Single = 3.14

4.字符串

几个常用的字符串函数:

Len(): 求长度

Trim(): 去掉两端空格

Replace(): 替代子串

Left(): 从左边取若干字符

Right(): 从右边取若干字符

Mid(): 从中间取若干字符

Instr(): 查找子串

LCase(), UCase(): 将字母变成小/大写

进行操作前可叠加使用Trim()和LCase()清除数据中的空格和因大小写不一致出现的问题。

5.过程流程控制

①循环

For … next

Do While … Loop

For Each in … Next

②判断

If ... Then ... (Else if ... Else ...) End if

Not, And, Or(优先级从左往右)

三. 对象结构

类,对象,属性,方法

1.定义类

2.定义属性

3.定义方法

4.创建并使用对象

189c4e2bd878fcc7b8517e308b747a34.png
课程介绍了这四个对象,但实际还有很多。

四. 编程习惯与辅助工具

①强制声明Option Explicit(写在sub上面,避免误用未定义的变量)

②代码缩进Tab键(注意递进关系,使代码更清晰)

③程序注释REM或单引号“‘ ”

④调试器(设置断点(在句子左侧点击)、单步执行F8、添加监视)

⑤录制宏(不会就录,注意录制时不要做多余的步骤)

五. 过程:

1.Sub

...

End Sub

2.Function

...

End Function

个人把过程语句理解为给电脑一个指令,让它知道是从这里开始,到那里结束。这里老师没有太多细讲。

六.练习:

汇总员工业季度报告(VBA基础篇第十八回 For Each轻取工作表,串函数巧解文字栏)

84036da7d16d83be9e52bf218f649b67.png
Option Explicit

Sub 季度汇总()
    
    Dim i, j, k, name
    Dim w As Worksheet, r As Worksheet
    
    Set r = Worksheets("季度汇总")

    '循环扫描汇总表中的每一行,记住每次要查找的姓名
    For i = 3 To 10
        name = r.Cells(i, 2)
            
        '循环扫描所有工作表,并用 w 指向该工作表
        For Each w In Worksheets
            '如果该工作表名字以“月”结尾,则认为是月报表
            If Right(w.name, 1) = "月" Then
                '循环扫描该月报表的每一行,判断其姓名列是否等于name
                k = 3
                Do While w.Cells(k, 2) <> ""
                    '如果第k行姓名等于name,则将该行累加到汇总表第i行
                    
                    If LCase(Trim(w.Cells(k, 2))) = LCase(Trim(name)) Then
                    
                        For j = 3 To 6
                        r.Cells(i, j) = r.Cells(i, j) + w.Cells(k, j)
                        Next j
                        
                    End If
                    k = k + 1
                Loop
            End If
        Next w
    Next i
End Sub

六. 总结

写了好久都没写对,一按运行就程序未响应,需要重新启动Excel,然后打开我写的程序就不见了……

47be212bc393b56cd50bc16823c2d7cd.png

对VBA有了大致的了解,明天开始学习蓝色幻想的课程。加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值