[VBA] 自訂函式:取得檔案最後修改時間 - 小攻城師的戰場筆記

文章推薦指數: 80 %
投票人數:10人

寫好馬上就可以用了,使用的時候不需要執行編譯,就只要在儲存格裡輸入=EDITTIME(TODAY()),儲存格內容就會出現程式裡指定回傳的檔案最後存檔時間。

如果 ... 小攻城師的戰場筆記 跳到主文 我是每天都和程式語言奮戰的小攻城師,在此記錄日常遇到的問題與解答。

部落格全站分類:數位生活 相簿 部落格 留言 名片 Feb10Tue200923:23 [VBA]自訂函式:取得檔案最後修改時間 寫了一個自訂函數,負責取得活頁簿(XLS檔)最後存檔時間。

設計的時候考慮到自訂函數是不會自動更新的,因此在用的時候輸入TODAY()、NOW()之類會經常自動計算的函數,整個活頁簿中有異動的時候,這個函數也就會因為它裡頭包的內容異動了而跟著執行一次。

今天一開始在Excel2007,還一度找不到要去哪裡編輯VBA,好險有快速鍵:Alt-F11。

打開一個Excel檔案,按下Alt-F11叫出VisualBasic編輯器,左手邊「專案」視窗中,會看到目前開啟的Excel檔案這個專案底下掛了哪些東西。

在「專案」視窗按滑鼠右鍵→「插入」→「模組」,就可以開始編輯以下程式碼了。

    '利用傳入Today()函數的值,讓自訂函數能和Today()函數一樣經常重新計算 '函數名稱:EDITTIME '傳入值型態:日期 FunctionEDITTIME(filedateAsDate)    '從現在開啟的這個Excel檔案(ThisWorkbook)的屬性,    '取得此檔案的BuiltinDocumentProperties屬性值中的「LastSaveTime(上次修改時間)」,    EDITTIME=ThisWorkbook.BuiltinDocumentProperties("LastSaveTime")    '也可以利用這個屬性取得上次列印日期(LastPrintDate)、最後編輯者(LastAuthor)等等檔案資訊 EndFunction 寫好馬上就可以用了,使用的時候不需要執行編譯,就只要在儲存格裡輸入=EDITTIME(TODAY()),儲存格內容就會出現程式裡指定回傳的檔案最後存檔時間。

如果時間以數值方式顯示,請對該儲存格按右鍵→「儲存格格式」,在「數值」頁籤利用自訂來改變Date顯示的樣式。

像我就設成「yyyy/mm/ddhh:mm:ssAM/PM」。

此外,除了利用BuiltinDocumentProperties這個屬性取得檔案最後存檔時間,也可以利用FileDateTime函數加上檔案路徑取得你的檔案建立或修改時間。

因此可以改寫成這樣: '利用FileDateTime(filepath)取出檔案最後存檔時間 FunctionEDITTIME(filedateAsDate)    EDITTIME=FileDateTime(ActiveWorkbook.Path) EndFunction 如果你寫的自訂函數不會自動更新,你也可以按Ctrl-Alt-F9手動重新計算整本活頁簿中的值。

不過想想又覺得我這種做法好像有點怪,找了一下,在這個討論串中看到「揮發性函數」的說法,於是又試著加入了Application.Volatile改寫原來的函數: '函數名稱:EDITTIME '傳入值:無 FunctionEDITTIME()    Application.Volatile    '傳入檔案路徑,取得該檔案的建立或最後修改時間    EDITTIME=FileDateTime(ActiveWorkbook.Path) EndFunction 使用的時候就只要在儲存格裡輸入:「=EDITTIME()」,就可以了。

現在,編輯工作表中任意儲存格,EDITTIME()也會自動更新囉! 全站熱搜 創作者介紹 小攻城師 小攻城師的戰場筆記 小攻城師發表在痞客邦留言(2)人氣() E-mail轉寄 全站分類:數位生活個人分類:Excel此分類上一篇:[VBA]把Excel資料匯出為純文字 此分類下一篇:[Excel]利用「定義」抓出公式來 上一篇:[Win]IIS網站啟動時出現「發生未預期的錯誤(0x8ffe2740)」 下一篇:[Misc.]所見即所得的線上文字編輯器:TinyMCE ▲top 留言列表 發表留言 內文搜尋 最近看了什麼呢 筆記分類成這些 文書處理(5) VIM(5)LaTeX(8)Excel(9)PowerPoint(3)Word(4) 前端技術(3) HTML/CSS/JavaScript(38)jQuery(9)ExtJS(3) 後端技術(8) Java(2)Sybase(1)Oracle(1)ASP.NET(14)Python(8)PHP(30)MSSQL(2)MySQL(7) 系統相關(5) iOS/Android(8)IIS(3)Apache(8)Debian(6)Windows(34) 其他內容(7) 網站設定(5)使用其他網站的小筆記(4)原文轉載(4)VersionControl(16)Conference(5)Security(2)雜七雜八(33) 文章彙整 文章彙整 2021十二月(1) 2021十一月(2) 2021九月(5) 2021八月(5) 2021七月(2) 2021六月(1) 2021五月(8) 2021四月(2) 2021三月(3) 2021一月(1) 2020十二月(3) 2020十一月(1) 2020十月(2) 2020九月(4) 2020八月(3) 2020七月(1) 2020六月(4) 2020五月(3) 2020四月(1) 2020三月(1) 2020二月(2) 2020一月(3) 2019十月(3) 2019三月(1) 2018九月(1) 2018八月(2) 2018五月(1) 2018四月(1) 2018三月(2) 2018二月(1) 2018一月(1) 2017十二月(1) 2017十一月(2) 2017十月(2) 2017八月(1) 2017七月(2) 2017五月(1) 2017四月(1) 2017三月(1) 2016十二月(1) 2016十一月(3) 2016八月(4) 2016七月(2) 2016五月(2) 2016四月(3) 2016三月(5) 2016二月(3) 2016一月(4) 2015十二月(4) 2015十一月(3) 2015十月(1) 2015九月(1) 2015八月(1) 2015七月(2) 2015六月(1) 2015五月(2) 2015四月(4) 2015三月(1) 2015二月(2) 2015一月(2) 2014十二月(3) 2014十一月(1) 2014十月(2) 2014九月(1) 2014八月(3) 2014六月(2) 2013七月(2) 2013五月(5) 2013四月(1) 2013三月(4) 2013一月(6) 2012十一月(1) 2012十月(1) 2012七月(1) 2012四月(2) 2012三月(4) 2012二月(4) 2012一月(2) 2011十二月(5) 2011十一月(4) 2011九月(1) 2011八月(2) 2011七月(2) 2011六月(2) 2011五月(3) 2011四月(2) 2011三月(1) 2011一月(1) 2010十二月(1) 2010十一月(1) 2010十月(2) 2010九月(2) 2010八月(1) 2010七月(3) 2010六月(2) 2010四月(2) 2010三月(2) 2010二月(2) 2009十月(1) 2009八月(1) 2009七月(2) 2009六月(3) 2009五月(2) 2009四月(1) 2009三月(4) 2009二月(5) 2009一月(1) 2008十二月(1) 2008十一月(2) 2008十月(1) 2008八月(2) 2008七月(2) 2008六月(5) 2008五月(2) 2008四月(6) 2008三月(11) 2008二月(1) 所有文章列表 好多人一起上進 本日人氣: 累積人氣: 大家通常讀這些 最新迴響 回到頁首 回到主文 免費註冊 客服中心 痞客邦首頁 ©2003-2021PIXNET 關閉視窗



請為這篇文章評分?