文科生自學VBA-開啟檔案倒計時自動召喚命令

--人生不是賽場,夢想不容退場,學習程式設計成就更好的自己--

微軟公司

Office

軟體在商業辦公領域一直佔據著主流和主導地位,其中

Excel

在資料處理和分析領域有著強大的影響力,大部分人在經歷幾年職場歷練後可以熟練的使用

Excel函式

透視表功能

,基本可以輕鬆完成絕大多數工作和任務。但實際上

Office

的強大和獨特之處還在於

VBA

,因為

VBA

能夠勝任好多個性化二次開發,減少重複機械勞動從而實現辦公自動化,開發效率高且開發週期短,尤其對於

Excel

重度使用者來說會了

VBA

簡直就是如虎添翼啊!!!

(本人外語專業畢業,機緣巧合愛上程式設計,自學道路曲曲折折,痛並快樂!)

在這裡總結一下自學

VBA

遇到的難點和重點,分享碼過的程式碼和要點總結,希望能夠給初學者一點啟示和鼓勵,同時願意結交更多大神交流有助提升自己的水平。

開啟Exel檔案時有的小夥伴希望能夠倒計時自動執行一個固定任務,畢竟除了透過窗體按鈕觸發任務外,這種倒計時自動觸發功能也是非常有意思和實用的,那麼今天就給大家介紹一下如何透過VBA來編寫開啟檔案後倒計時自動觸發功能吧!!!

首先,VBA實現一個最簡單的功能-開啟檔案後立即彈出訊息視窗問好,如下:

在VBE環境下找到ThisWorkbook,然後選擇Open狀態下把Messagbox寫入即可,注意儲存好啟用宏的檔案,下面試試再次開啟檔案會發生什麼?

文科生自學VBA-開啟檔案倒計時自動召喚命令

效果如下:

看到開啟檔案立馬彈出了訊息提示視窗,給我們來跪安了!!

文科生自學VBA-開啟檔案倒計時自動召喚命令

再次,進入今天的正題-如何開機後自動觸發一個任務:

這裡設定一個簡單的觸發任務作為例子,就是找到指定的Sheet頁生成一段文字即可。實現這個過程主要分兩塊:

第一塊把核心觸發任務寫好,第二塊把倒計時觸發命令也寫好調入核心任務即可

,如下:

文科生自學VBA-開啟檔案倒計時自動召喚命令

同樣繫結到開機事件中:

文科生自學VBA-開啟檔案倒計時自動召喚命令

效果如下:

開啟該檔案後5秒自動觸發了任務,很聽話!!!

文科生自學VBA-開啟檔案倒計時自動召喚命令

最後,再增加點複雜度-開機後先彈出提示視窗,確定後倒計時再執行任務:

具體案例就是找到指定Sheet錄入最近7天日期資料,如下:

文科生自學VBA-開啟檔案倒計時自動召喚命令

效果如下:

先彈出提示視窗,確定後倒計時執行任務:

文科生自學VBA-開啟檔案倒計時自動召喚命令

確定後生成日期資料如下:

文科生自學VBA-開啟檔案倒計時自動召喚命令

程式碼彙總如下:

Function GetDataDelete() ‘刪除指定Sheet中的所有資料自定義函式Application。ScreenUpdating = FalseThisWorkbook。ActiveSheet。Select ’選定啟用的Sheet Cells。Delete ‘注意Delete刪除所有資料包括其格式Application。ScreenUpdating = FalseEnd FunctionSub Mission1() ’核心觸發任務生成一段文字Sheets(“START”)。Select GetDataDelete ‘呼叫刪除自定義函式 Range(“B8”) = “人生不是賽場,夢想不容退場!!” Columns(2)。ColumnWidth = 50 ’設定列寬 With Range(“B8”) 。Interior。ColorIndex = 36 ‘設定單元格背景顏色 。Borders。Weight = xlMedium ’設定邊框粗細程度 。Font。Name = “微軟雅黑” ‘設定字型格式 。HorizontalAlignment = xlCenter ’設定單元格內字元居中顯示 。Font。FontStyle = “加粗” ‘設定字型加粗 。Font。ColorIndex = 3 ’設定字型顏色 End WithEnd SubSub TimerRunnerMission1() ‘倒計時自動執行程式碼Application。ScreenUpdating = TrueDim SecondTime As Date ’定義一個日期SecondTime = Now + TimeValue(“00:00:05”) ‘開機算過幾秒開始執行程式碼 Application。OnTime SecondTime, “Mission1”ThisWorkbook。SaveApplication。ScreenUpdating = FalseEnd SubSub Mission2() ’核心觸發任務獲取最近7天日期資料Application。ScreenUpdating = TrueSheets(“SHOW”)。SelectGetDataDelete ‘呼叫刪除自定義函式Range(“A1”) = “序號”Range(“B1”) = “日期”Range(“C1”) = “星期”Range(“D1”) = “月份”Dim i As LongFor i = 1 To 7 Step 1 Range(“A” & i + 1) = i ’遍歷迴圈獲得序號 Range(“B” & i + 1) = CDate(Format(Now, “yyyy-mm-dd”)) + i - 1 ‘遍歷迴圈獲得日期資料,CDate 函式可把一個合法的日期和時間表達式轉換為Date型別 Range(“C” & i + 1) = Weekday(Range(“B” & i + 1), 2) ’遍歷迴圈獲得星期幾 Range(“D” & i + 1) = Month(Range(“B” & i + 1)) ‘遍歷迴圈獲得月份Next iApplication。ScreenUpdating = FalseEnd SubSub TimerRunnerMission2() ’倒計時自動執行程式碼Application。ScreenUpdating = TrueDim FirstTime As Date ‘定義一個日期FirstTime = Now + TimeValue(“00:00:05”) ’開機算過幾秒開始執行程式碼 Dim i As Integer i = MsgBox(“確定5秒後執行命令2?”, 1, “確定對話方塊”) If i = 1 Then Application。OnTime FirstTime, “Mission2” Else: Exit Sub End IfThisWorkbook。SaveApplication。ScreenUpdating = FalseEnd Sub

有興趣的小夥伴們趕緊自己也試一下吧,這樣每次開啟檔案就能夠自動實現一些自動化任務了哇!!!

END

我為人人,人人為我!!歡迎大家關注,點贊和轉發!!!

~~人生不是賽場,夢想不容退場~~不斷努力學習蛻變出一個更好的自己,不斷分享學習路上的收穫和感悟幫助他人成就自己!!!