VBA Time 函數:取得系統目前的時間
VBA Time 函數:取得系統目前的時間
📅 發布日期:2026-09-01
🏷️ 分類:日期與時間 VBA 函數
💡 函數速查卡
| 函數名稱 | Time / Time$ |
|---|---|
| 所屬類別 | 日期與時間 (Date & Time) |
| 傳回類型 | Variant (Date) / String |
| 常用頻率 | ★★★★★ |
在 Excel VBA 的日期與時間處理中,Time 是極為實用的內建函數。它能即時擷取電腦系統目前的「時間(時:分:秒)」,但不包含日期部分。廣泛應用於執行紀錄(Log)記錄、程式執行時間測量、定時任務觸發以及打卡系統開發等情境。
一、 基本語法與參數
Time 函數的標準語法結構如下:
Time()
| 參數 | 說明 | 預設值 / 必填 |
|---|---|---|
無 |
此函數不需傳入任何參數,呼叫時會直接讀取系統當前時間。 | 無 |
二、 核心功能說明
Time 函數會讀取作業系統的當前時間,並以系統預設的時間格式傳回(例如 下午 02:30:15 或 14:30:15)。
在實際 VBA 自動化開發中,常見的使用情境包括:
- 在工作表中自動寫入資料更動或記錄產生的「即時時間戳記」。
- 配合
Format函數,將時間轉為指定的 24 小時制(如HH:mm:ss)格式。 - 結合
TimeValue或DateAdd進行時間差計算與倒數計時。
三、 實用程式碼範例
範例 1:基本取得時間與格式化輸出
直接取得目前時間,並使用 Format 轉換為標準 24 小時制格式:
Sub GetCurrentTimeExample()
Dim currentTime As Date
currentTime = Time
Debug.Print "目前系統時間:" & currentTime
' 格式化為 24 小時制 (HH:mm:ss)
Dim formattedTime As String
formattedTime = Format(Time, "HH:mm:ss")
Debug.Print "格式化時間:" & formattedTime
End Sub
範例 2:自動寫入操作 Log 與時間戳記
在自動化巨集執行完畢時,將目前時間紀錄於工作表的指定儲存格:
Sub WriteExecutionLog()
' 假設將執行時間紀錄在 A1 儲存格
ActiveSheet.Range("A1").Value = "最後更新時間:" & Format(Time, "HH:mm:ss")
MsgBox "資料更新完成!記錄時間:" & Time, vbInformation
End Sub
範例 3:Time 語法修改系統時間 (Time Statement)
當 Time 作為陳述式使用在等號左側時,可用於直接修改作業系統的系統時間(需系統管理員權限):
Sub SetSystemTimeExample()
' 注意:這會直接修改作業系統時間
Dim newTime As Date
newTime = TimeValue("12:00:00")
' 將系統時間設定為 12:00:00
Time = newTime
End Sub
四、 常見陷阱與注意事項
⚠️ 注意事項 1:Time 僅包含時間,不含日期
Time 函數只會傳回當前時間(時、分、秒)。如果你的應用情境需要包含「年月日」,請改用 Now 函數;若只需要「年月日」,則使用 Date 函數。
⚠️ 注意事項 2:效能最佳化選用 Time$
Time 預設傳回 Variant (Date) 型態;若確定後續處理皆為文字格式,可改用帶有錢字號的 Time$,這會直接傳回 String 型態的時間字串(格式為 hh:mm:ss),在字串組裝與大量執行時效能更佳。
Dim strTime As String
strTime = Time$ ' 直接返回 String 型別的 "14:30:15"
五、 相關函數推薦
Date:取得目前的系統日期(不含時間)。Now:同時取得目前的系統日期與時間。Timer:傳回自午夜(00:00:00)以來所經過的秒數,非常適合用於精確計算程式執行時間。TimeValue:將時間格式的文字轉化為日期/時間(Date)型別。
六、 官方文件連結
想進一步瞭解更詳細的極端情境與進階用法,可參考微軟官方說明:
留言
張貼留言