[VBA] 自訂函式:取得檔案最後修改時間 - 小攻城師的戰場筆記
文章推薦指數: 80 %
寫好馬上就可以用了,使用的時候不需要執行編譯,就只要在儲存格裡輸入=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
關閉視窗
延伸文章資訊
- 1【VBA研究】如何用VBA讀取檔案的日期時間 - ITREAD01.COM
檔案的日期時間分建立時間和修改時間,檔案一旦建立,建立時間就定下不變了, ... 1、取檔案的修改時間VBA有專門的函式FileDateTime,如下面的語句:
- 2【求助】EXCEL自動存備份檔檔名問題- PCZONE 討論區
用當天的日期作檔名. Sub backup_file() ... TmpN1 = Format(Date, "yyyymmdd") '用今天的日期當作另存新檔的檔名 ... 在上Excel VB...
- 3Excel VBA 程式設計教學:時間(Date 與Time)
這裡介紹Excel VBA 的時間變數與相關函數的用法,並且提供許多實用的參考範例。 日期與時間是一種比較特別,但是也時常會被使用到的資料類型,在VBA ...
- 4Excel VBA 的眉眉角角Day20:關於日期的相關問題
Excel VBA 的眉眉角角Day20:關於日期的相關問題. Excel VBA 的眉眉角角系列第20 ... Sub Day20_1() '使用Format方法來取得日期、時間的相關數據da...
- 5excel vba 自動擷取日期存檔 - 麻辣家族討論版版
目前在Hsieh版的教導下,以可以使用VBA執行後,另存成word檔在桌面上想再請教一下,如何存檔時可自動擷取下週日期為檔名例如:「0506-0512的行程」 請 ...