贊贊小屋

VBA利用Now、Date函數,開啟檔案自動顯示時間日期

Excel VBA有很多的函數、變數、事件,本文以顯示時間日期和開啟活頁簿自動執行為例,介紹Now、Date、Format函數,Date及String變數,Workbook_Open事件,簡單程式中熟悉VBA語言。

一、VBA Now函數

MsgBox (“現在時間是:” & Now()):先前有介紹過MsgBox指令了,這裡比較特別是將兩個字串以「&」合併,這個跟Excel用法相同。另外這裡用了VBA函數Now(),作用是顯示系統日期時間。

Excel也有Now函數,作用是會傳回系統日期時間,所以剛好Excel和VBA都有Now函數,而且作用相同。不過VBA函數本身是獨立的體系,只是有少部份名稱和Excel相同,作用也相同,大部份VBA函數則是與Excel沒有關係。

VBA利用Now、Date函數,開啟檔案自動顯示時間日期 VBA自動化 第1張

二、顯示現在時間

執行後成功顯示完整的日期及時間。

VBA利用Now、Date函數,開啟檔案自動顯示時間日期 VBA自動化 第2張

三、Date及Format函數,宣告變數

這裡的程式稍微複雜一些,但其實主要結構仍然不變,說明如下:

Dim T1 As Date, T2 As String:國中數學為了便於解題會設計x,y變數,VBA為了便於執行幾乎也都會設定變數。這裡Dim T1 As Date表示設定T1為日期型態變數,Dim T2 As String是將T2設定為文字型態。

T1 = Date:Date也是VBA函數,作用是傳回系統日期。VBA函數名稱所使用的英語算是專有獨占,所以Date和Date()是一樣的,也就是「()」可以省略,第一步驟中同樣是「Now」和「Now()」皆可,這一點VBA函數不同於Excel函數。

「T2 = Format(T1, “yyyymmdd”)」:VBA的Format函數作用接近於Excel的TEXT,可以轉換數值格式,這裡是將yyyy/mm/dd轉換成yyyymmdd,實際執行就會很清楚。

VBA利用Now、Date函數,開啟檔案自動顯示時間日期 VBA自動化 第3張

四、顯示今天日期

執行程式,會先顯示「2020/8/20」。

VBA利用Now、Date函數,開啟檔案自動顯示時間日期 VBA自動化 第4張

五、特定日期格式

接著顯示「20200820」,和上個步驟合起來可以瞭解Format函數的作用。

VBA利用Now、Date函數,開啟檔案自動顯示時間日期 VBA自動化 第5張

六、ThisWorkbook物件

左邊的專案視窗中,每個Project主要是一個Excel檔案,依照樹狀夾結構分為「Microsoft Excel物件」和「模組」。將游標移到「ThisWorkbook」連按兩次,表示想設計以這個活頁簿為對象的程式。

VBA利用Now、Date函數,開啟檔案自動顯示時間日期 VBA自動化 第6張

七、Workbook_Open事件

進入「ThisWorkbook」物件之後,右邊的代碼視窗有兩個下拉選單,將左邊選單下拉,選擇「Workbook」,左邊下拉選單應該會自動變成是選擇「Open」的狀態,程式輸入區會自動生成「Private Sub Workbook_Open()…End Sub」在中間輸入「MsgBox (“現在時間是:” & Now())」這樣表示建立一個開啟活頁簿即執行的程式。關閉檔案後再開啟,應該會自動跳出第二個步驟的顯示時間對話方塊。

VBA利用Now、Date函數,開啟檔案自動顯示時間日期 VBA自動化 第7張

VBA變數、函數、事件

這篇文章的範例程式很簡單,其中涉及到VBA的變數、函數、事件,這三個區塊裡都還有很多其他的VBA可供使用學習的東西,例如除了日期和文字型態的變數,VBA還有整數、物件等變數。

讀者毋須著急要一次認識所有的變數型態,就跟Excel有很多指令函數一樣,實務應用上不會用到所有的指令函數,只要先知道大概有這種東西,隨著贊贊小屋VBA課程進行,自然會介紹到最常用最實用的工具,而且都有相關範例及練習,讀者循序漸進便會越來越清楚。

本網站所有內容皆受版權保護,网站备案编号:苏ICP备14051307号-1