iT邦幫忙

0

VBA 初學筆記(一)

vba
  • 分享至 

  • xImage
  •  

前言

今年剛入職,工作幾乎都是要在黃光區做實驗,用不太到電腦。
有些時候需要用到的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:在幹嘛的,猜是加在最後面吧


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言