VBA 初学笔记(一)

前言

今年刚入职,工作几乎都是要在黄光区做实验,用不太到电脑。
有些时候需要用到的EXCEL是前辈们做的,那个土法炼钢的程度自己是有点受不了,所以决定跳下去改的方便一点。
所以决定开始学VBA。

其实我需要的功能好像EXCEL内建的函数就能解决九成,但想说还是做个没几个同事看得懂的巨集,来增加一些自己的不可取代性(大概吧...)

而自己因为非常金鱼脑,工作的电脑又只能连内网,只好逼自己写笔记加深印象。本来要写在 Notion 上,可是打开後发现好像要写得好看还要学一些东西,发懒的我只好转写到这里了。

因为本人是工学院毕业的,很多用语应该非常不精确,见者见谅XD

开始使用

excel我的版本是2019,但应该跟2016差不多吧

  • 总之先把开发人员的标签弄出来
    档案>选项>自订功能区
    把开发人员勾起来
    就会出现了

到该标签按下visual basic,开个模组就能开始用啦~~

开始写

写给自己看的,记录一些自己写错、容易忘记的东西

Sub FunctionName()
内容
End Sub

内容

函数 ()内可以放 ()内可以放 ()内可以放 ()内可以放 ()内可以放
Range() "a1" "a1:b3" "B:E" "2:6" Range("a1"),ActiveCell
Cells() 2,3

cells里面的数字栏列我是用矩阵的m,n去想的,第一个数字是往下,第二个数字是往右

.

. 用途 范例
.Select 选起来 Cells.Select 全部选起来
.Delete 删掉

有变数就只能宣告他一下?
用九九乘法为例:

Sub MultiplicationTable()
    Dim i As Integer, j As Interger
    For i = 1 To 9
        For j = 1 TO 9
            Cells(i, j) = i* j
        Next j
    Next i
end Sub

回圈

  • For~Next
    以删除空白列为例,得用倒序的方式去跑回圈,不然会删不完全。
    (123列都空白,1删了2会递补上去,但回圈跑到2了,就只会删到原本的3,就会留下一列空白)
Sub test1()
    For i = 13 To 1 Step -1
        If Cells(i, 1) = 0 Then
            Rows(i).Delete
        End If
    Next i
End Sub
  • For Each~Next

Worksheets

  • 吐多张分页写法
Sub testn()
Dim k As Integer
    For k = 1 To 3
        Worksheets.Add after:=Worksheets(Worksheets.Count)
    Next k
End Sub

我还不知道after:在干嘛的,猜是加在最後面吧


<<:  【前端效能优化】WebP - 较小容量的图片格式选择

>>:  【从零开始的 C 语言笔记】第二十九篇-读档 & 写档(1)

[Day27]jsES6语法-解构(下)

我们也可以把解构方法用在物件里面,把 family 的值传到 Min ,并且用 Leo 的名称来代替...

均线的重要性-价值千金

均线是我在技术面非常倚重的指标之一。 个人认为,它非常非常重要,原因在於,了解均线不一定能帮你赚大钱...

Day 10:v-for 注定绑个 key

承上篇,谈到 v-for,就要说说它的最佳良伴——key。 v-for 必须绑定代表唯一值的 key...

Day 5 用 Ruby 印东西

写在前面 虽然写铁人赛文章很有趣很有挑战性,但是常常很多时候都写得有点怕怕的,怕真实的状况跟自己写的...

Day.9 备份还原 - 还原资料 (MYSQL binlog )-下

前情提要: 在前一天的部分我们备份好user资料库数据,和准备资料的动作 << 那就直接...