2013年2月21日 星期四

VBA 小學堂-實現自動化的第一步-For next

春節假期就這樣溜走了 T_T (喂~都開工快一個禮拜了)

不過元宵節前都算過年嘛~所以在這也跟大家拜個晚年嚕

還記得在上一篇 VBA 小學堂裡介紹的儲存格語法嗎

在最後有提到一個程式碼不知道大家還有沒有印象

Sub test()
Range("A1048576").End(xlUp).Offset(1, 0) = Range("A1048576").End(xlUp) + 1
End Sub

在裡面也提到了如果資料有 1000 筆甚至更多的話

手應該會按到抽筋吧 XD

所以在這次要介紹的是讓這個小程式可以自動執行的方法

For…next 函數

這函數其實有點迴圈的意思 (有沒有想起高中或大學的夢靨計算機概論阿 XD)

廢話不多說直接來改寫,我想聰明的大家一定一看就懂的

這邊一樣先做個按鈕來準備把巨集指定過來喔

Sub test()
Dim i As Integer
For i = 1 To 1000
Range("A" & i).Offset(1, 0) = Range("A1048576").End(xlUp) + 1
Next i
End Sub

執行之後會有以下結果

image

image

按一下就直接幫你從 A2 一路填到 A1001

這邊稍微解釋一下

For i = 1 To 1000 就是變數 i 為1-1000

程式碼開頭的 Dim i As Integer 就是將 i 定義成整數 (Dim 在定義變數常常用到喔,以後會常常出現的)

而 next 就是當 i = 1 執行完之後,變成 i = 2 繼續執行

再來就是 i = 3, i = 4, i = 5…以此類推

要一路執行到 i = 1000 才可以離開 For…next 迴圈

這類寫法我想不只 VBA,其實在很多程式語言裡面搞不好都看的到呢

另外這個函數不只能 +1 +1 的執行 (i = 1, 2, 3…)

只要在 For i = 1 to 1000 後面加個 step 數字

譬如

For i = 1 to 1000 step 2

就會變成 i = 1, 3, 5, 7…999 執行

image

image

這幾個函數運用的好的話

其實就可以寫出很多方便的巨集

再來就是看大家的創意嚕

沒有留言:

張貼留言

Related Posts Plugin for WordPress, Blogger...