目錄
技巧1 : 取得程式執行所需時間
在撰寫程式的時候,有時候我們不會只撰寫一個,可能會有好幾個程式一起執行。但是在執行的過程中,如果覺得程式執行得太久,也許我們會想要個別挑出想要測試的程式,並加以確認所執行的時間,並且優化。步驟1. 定義所需的變數
步驟2. 取得開始的時間
步驟3. 要測試的主要處理程序
步驟4. 取得結束時間
步驟5. 顯示處理程式所需的時間
注意: 想要取得的處理程序一定要夾在步驟2和步驟4的中間。
程式碼
Sub MeasrureTime()
'定義所需的變數
Dim startTime As Double
Dim endTime As Double
Dim processTime As Double
Dim i As Long
'取得開始的時間
startTime = Timer
'主要處理程序
For i = 1 To 100000
Next i
'取得結束時間
endTime = Timer
'顯示處理程式所需的時間
processTime = endTime - startTime
MsgBox "處理所需時間" & processTime
End Sub
關於技巧1:取得程式執行所需時間可參考以下連結影片
技巧2 : 在設定的倒數時間後執行程式
步驟1. 使用Application.OnTime 方法
步驟2. 如果是倒數要使用 Now + TimeValue("小時:分鐘:秒數")
步驟3. 最後再加上 , 逗點後方加上要執行的程式
程式碼
Sub 指定提醒時間()
'使用Application.OnTime 方法
' 10秒後執行
Application.OnTime Now + TimeValue("00:00:10"), "通知"
End Sub
Sub 通知()
MsgBox "提醒通知"
End Sub
關於技巧2:在設定的倒數時間後執行程式可參考以下連結影片
技巧3 : 在設定的指定時間執行程式
在撰寫程式的時候,有時候也許會希望撰寫一個小程式,希望這個程式會在指定時間執行我們想要執行的程式。
例如在指定的時間打開購物網站搶優惠,又或者在指定的時間去抓取需要的資料。
如果您有這樣的需求,這時候不妨試試以下的小技巧。
步驟1. 使用Application.OnTime 方法
步驟2. 使用 TimeValue("小時:分鐘:秒數")
步驟3. 最後再加上 , 逗點後方加上要執行的程式
程式碼
Sub 指定時間執行()
'使用Application.OnTime 方法
' 指定時間執行
Application.OnTime TimeValue("15:00:00"), "下班通知"
End Sub
Sub 下班通知()
MsgBox "現在時間是: " & Now & "下班囉!!"
End Sub
關於技巧3:在設定的指定時間執行程式可參考以下連結影片
技巧4 : 開啟chrome及指定網址
技巧4的內容,可參閱本站的文章 開啟Chrome或Edge前往指定網址 所撰寫的內容。
關於技巧4 : 開啟chrome及指定網址可參考以下連結影片
技巧5 : 防止畫面閃爍ScreenUpdating設定
在執行程式的時候,因為程式碼是逐行處理,如果遇到儲存格的移動或公式重新計算...等,會導致Excel重新更新畫面時,這時候畫面會不斷地閃爍,並且由於畫面不斷在重新更新,也會拖累程式的執行速度。
如果想要暫時關閉畫面更新,可使用這個小技巧。
防止畫面閃爍ScreenUpdating設定,在執行繁重的程式時,可以避免畫面不停閃爍喔
1. 關閉畫面更新 ScreenUpdating OFF
Application.ScreenUpdating = False
2. 關閉畫面更新 ScreenUpdating ON
Application.ScreenUpdating = True
3. 透過True , False 來設定畫面是否更新
程式碼
Sub ScreenUpdatingTest()
' 宣告變數
Dim num As Long
Dim i As Long, j As Long
'關閉畫面更新 ScreenUpdating OFF
Application.ScreenUpdating = False
'主程式
For i = 1 To 100
For j = 1 To 100
Cells(i, j).Value = Cells(i, j).Address
Next j
Next i
'關閉畫面更新 ScreenUpdating ON
Application.ScreenUpdating = True
End Sub
關於技巧5:可參考以下連結影片
技巧6 : 開啟edge及指定網址
技巧6的內容,可參閱本站的文章 開啟Chrome或Edge前往指定網址 所撰寫的內容。
關於技巧6 : 開啟edge及指定網址可參考以下連結影片
技巧7 : 執行批次檔 execute batch file
使用VBA執行一些批次檔,也是我經常使用的功能,關於批次檔的內容,以後會在其他的文章內說明,在這裡只說明如何使用VBA去執行VBA的檔案。
首先要執行之前,當然要有一個.bat的檔案。
1. 使用 CreateObject函數,參數為 WScript.shell
2. 取得想要執行批次檔的檔案路徑
3. 使用Run 方法執行 Run參數為路徑
4. 最後釋放參照的物件
程式碼
Sub BatchFileTest()
' 宣告變數
Dim Batch As Variant
Dim batchPath As String
' 使用 CreateObject函數
Set Batch = CreateObject("WScript.shell")
' 取得批次檔路徑位置
batchPath = ActiveWorkbook.Path & "\" & "StartWeb.bat"
' 使用Run 方法
Batch.Run (batchPath)
'釋放物件變數
Set Batch = Nothing
End Sub
'startWeb.bat 檔案內的程式碼
start http://tw.yahoo.com
關於技巧7 : 執行批次檔可參考以下連結影片
技巧8 : 建立使用者定義函數
在Excel 可以透過VBA 建立使用者自己定義的函數,如果想要在Excel內建立另外的函數,可以透過這個技巧。
這個技巧算是相當實用,可以在VBA裡面寫計算後,得出自己想要的結果。如果您也需要這個功能,不妨也試看看吧。
Function 函數名(參數 As 資料型態) As 返回值資料型態
函數名 = 返回值
End Function
程式碼
' 建立使用者定義函數
' 基本格式
' Function 函數名(參數 As 資料型態) As 返回值資料型態
' 程式處理
' 函數名 = 返回值
' End Function
' 定義參數數字乘以5倍的函數~
Function FiveTime(num%) As Integer
FiveTime = num * 5
End Function
關於技巧8 : 建立使用者定義函數可參考以下連結影片
技巧9 : 使用TypeName函數取得變數資料型態
在撰寫程式的過程中,有時候會想要知道,變數的資料型態為何。
這時候可以使用TypeName來取得相關資訊,如果遇到這樣的狀況,不妨試試這個小技巧。
1. 基本格式
TypeName(變數名)
2. TypeName函數,可取得變數或物件資料型態,並以字串傳回
程式碼
Sub TypeName取得變數資料型態()
' 基本格式
' TypeName(變數名)
' TypeName函數
' 可取得變數或物件資料型態,並以字串傳回
' 範例1.
Dim myInt As Integer
' 以TypeName函數取得myInt資料型態
MsgBox TypeName(myInt)
' 範例2.
Dim myStr As String
' 以TypeName函數取得myStr資料型態
MsgBox TypeName(myStr)
End Sub
關於技巧9 : 使用TypeName函數取得變數資料型態可參考以下連結影片
技巧10 : 使用TypeName函數取得物件資料型態
1. 基本格式
TypeName(變數名)
2. TypeName函數,可取得變數或物件資料型態,並以字串傳回
程式碼
Sub TypeName取得物件資料型態()
' 基本格式
' TypeName(變數名)
' TypeName函數
' 可取得變數或物件資料型態,並以字串傳回
' 範例
Dim myRange As Range
Set myRange = Range("A1")
' 以TypeName函數取得myRange資料型態
MsgBox TypeName(myRange)
' 釋放物件
Set myRange = Nothing
End Sub
關於技巧10 : 使用TypeName函數取得物件資料型態可參考以下連結影片
技巧11 : 使用VarType函數取得變數資料型態
1. 基本格式
VarType(變數名)
2. VarType函數,可取得變數資料型態,並以常數傳回
3. 回傳值和TypeName不同,
TypeName函數,可取得變數或物件資料型態,並以字串傳回
VarType函數,可取得變數資料型態,並以常數傳回
程式碼
Sub VarType取得變數資料型態()
' 基本格式
' VarType(變數名)
' VarType函數
' 可取得變數資料型態,並以常數傳回
' 範例1.
Dim myInt As Integer
' 以VarType函數取得myInt資料型態
MsgBox VarType(myInt)
' 範例2.~
Dim myStr As String
' 以VarType函數取得myStr資料型態
MsgBox VarType(myStr)
End Sub
關於技巧11 : 使用VarType函數取得變數資料型態可參考以下連結影片