Excel、Word VBA 学习笔记


VBA的全称是: Office Visual Basic for Applications,是用来 扩展 Office 应用程序的。

编辑器

任意 Office 套件中的一个。比如 word、excel 都可以,热键Alt + F11即可打开VBA编辑器
编辑器很简单,用过VS的这个无缝上手。(其实就是个阉割的VS)。
没用过也没关系,边用边学,有不会的再F1查一下VBA编辑器菜单和命令帮助就好了。

从宏录制开始

学习vba一个最简单的入门方式就是使用Office的录制宏功能。
如下:

  1. 我开启了录制宏,然后在单元格里写了些数字,还设置了背景色。
  2. 结束后就录制好了。
  3. 最后我先清除刚才的操作,然后执行一下刚才操作的结果就又出现了。
    在这里插入图片描述
    word长这样:
    在这里插入图片描述

其实录的就是vba现在我们在这里插入图片描述 或者Alt + F11,就可以看到刚才录下的代码了。
在这里插入图片描述
学习时要注意的就是录制的代码毕竟和人的思路不一样,通常都比较啰嗦。
比如:单元格A1写入1

  • 录制代码
Range("A1").Select ' 选择 A1
ActiveCell.FormulaR1C1 = "1" ' 设置活动单元格的值
  • 正式写代码
Range("A1").Value2 = "1" ' 设置 A1 单元格的值

语法

语法方面两个栏目搞定:(其它的遇到再查即可)

查漏补缺

命名参数赋值(:=冒号等号)

命名参数赋值,通常用在跳过可选参数的时候,直接以参数名:= 的形式传参。
官方说明:了解命名参数和可选参数
MsgBox (prompt, [ buttons, ] [ title, ] [ helpfile, context ])为列,我们只想传prompttitle

  • 方式一:按顺序
    这里我们没传buttons但是位置你得给人家空出来,不能省。
MsgBox "省略可选参数 ,留出位置即可!", , "温馨提示"
  • 方式二:命名参数赋值
    这里我们以命名的方式,点名道姓的传title,所以系统就不会将第二个参数误认为buttons了。
    另外prompt我们并没有点名,因为它是必填的,位置也没有歧义。
MsgBox "明确告诉系统我传的是哪个参数,不用你按位置猜!", Title:="温馨提示"

例子

接收函数返回的数组

因为VB坑爹的数组,可以声明Variant来接受。

Dim 文件夹数组 As Variant
文件夹数组 = 获取文件夹结构(path)

推荐范式

操作数组而不是单元格

不要操作单元格,把值出来到数组里操作,最后再写回去。

Sub 操作数组而不是Range()
    Dim vArray As Variant
    Dim iRow As Integer
    Dim iCol As Integer
    Dim dValue As Double
    
    vArray = Range("A1:C10000").Value2 '取出所有值到数组
    
    For iRow = LBound(vArray, 1) To UBound(vArray, 1)
      For iCol = LBound(vArray, 2) To UBound(vArray, 2)
          vArray(iRow, iCol) = iRow * iCol
      Next iCol
    Next iRow
    
    Range("A1:C10000").Value2 = vArray ' 一次性将数组写回去
End Sub

With 语句

使用 With 语句用不是反复取值。可以多层嵌套的。

With MyObject 
	 .Height = 100 ' Same as MyObject.Height = 100. 
	 .Caption = "Hello World" ' Same as MyObject.Caption = "Hello World". 
	 With .Font 
		  .Color = Red ' Same as MyObject.Font.Color = Red. 
		  .Bold = True ' Same as MyObject.Font.Bold = True. 
	 End With
End With

参考

【中】函数 (Visual Basic for Applications)
【英】函数 (Visual Basic for Applications)

【中】Office VBA 参考
【英】Office VBA 参考

【中】Word VBA 参考

VBA编辑器菜单和命令

W3cschool.cn Excel VBA 编程教程 (实例较多,可参考)
教程:Analystcave vba-tutorial
教程:www.educba.com/vba

9 quick tips to improve your VBA macro performance

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笑虾

多情黯叹痴情癫。情癫苦笑多情难

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值