VBA如何另存檔案備份 - 會計

Heather avatar
By Heather
at 2017-01-04T21:34

Table of Contents


VBA如何另存檔案備份

網誌圖文版:

http://www.b88104069.com/archives/4149

我們在Excel的世界裡,設計很複雜的函數公式,雖然能引用其他儲存格、其
他工作表、甚至是其他工作簿的內容,但最終操作結果,都是在目前的儲存
格中顯示特定內容,操作的對象總是儲存格。然而在VBA的世界裡,可以直接
以工作表、工作簿、甚至是Excel檔案作為操作對象,對他們下指令,如此跨
越了儲存格的界線,有很大的發揮空間。比如說,有很多的Excel操作:新建
、打開、關閉、儲存、另存等等,這些動作可能在某個例行性工作中一再重
複,在Excel世界裡,我們也只能一步一步來,每個月都必須來一次。可是擅
用VBA,把這些步驟串成一段指令,每次一鍵讓Excel自動去執行。長期以往
,大大節省了時間、提昇了效率,這是Excel自動化的另外一個層次。以下分
享VBA如何以檔案作為操作對象,設定另存檔案備份:

一、輸入如下VBA程式:

二、Excel執行VBA程式的畫面如下:

三、觀察原Excel檔案所在的資料夾,會發現多了一個「VBA如何另存檔案備
份-copy」,修改時間每分鐘更新一次,效果等同於定期另存新檔備份,以下
詳細說明此VBA程式。

四、建立新的巨集:「Sub Time()」。

五、VBA的每次操作是一個事件,其中「OnTime」是時間到了即自動執行的程
式,標準語法是「.」隔開,然後空格之後是對於該事件的具體描述(屬性)
,「Application.OnTime Now + TimeValue("00:01:00"), "Autosave"」意
思是從現在開始,一分鐘之後執行「Autosave」巨集,最後結束此段程式:
「End Sub」。

六、編寫另一段程式:

Sub Autosave()」

Range("A1") = ThisWorkbook.Path

在儲存格「A1」寫入目前工作簿所在的資料夾路徑。

n = ThisWorkbook.Name

定義「n」為目前工作簿的檔案名稱。

Range("A2") = n

在儲存格「A2」寫入「n」。

n = Left(n, InStrRev(n, ".") - 1)

更新定義「n」。這裡使用了兩個函數,「InStrRev」函數是從後面開始尋找
,傳回某字串在另一個字串中首次出現的位置,Left函數是傳回文字字串中
的前幾個字元 。以這篇文章的Excel檔案為例,原來「n」的內容是「
ThisWorkbook.Name」,也就是「VBA如何另存檔案備份.xlsm」,然後又更新
了「n = Left(n, InStrRev(n, ".") - 1)「InStrRev(n, ".")」,等於是去
掉副檔名,結果便是「VBA如何另存檔案備份」。

Range("A3") = n

在儲存格「A3」寫入「n」。

ThisWorkbook.SaveCopyAs Filename:=ThisWorkbook.Path & "\" & n &
"-" & "copy" & ".xlsm"

此為VBA標準語法,對象和程序中間以「.」隔開,「
ThisWorkbook.SaveCopyAs」意思是以目前工作簿為對象,執行另存檔案,空
一格後面是具體描述(Excel的正式說法叫屬性),這裡設定檔名為:「
Filename:=ThisWorkbook.Path & "\" & n & "-" & "copy" & ".xlsm"」,
這句程式對於熟悉Excel公式的人,應該不難理解。

MsgBox "已自動儲存"

提示訊息視窗:「已自動儲存」。

Call Time

召喚執行「Time」巨集。

End Sub

結束「Autosave」巨集。

這篇文章的VBA不會太複雜,但是涉及到的程式概念相當完整。有一個具體的
執行程序(事件屬性的書寫語法)、有根據需求所定義的變數(VBA習慣是一
再更新定義)、有設計公式計算的函數(Excel原有函數及VBA特有函數)、
最後將結果寫入Excel儲存格中,並且配合提示視窗和關聯巨集的操作。如果
這些「關鍵零組件」都能夠熟悉,觸類旁通,將會大大強化VBA的實作能力。


延伸閱讀:

VBA如何定期自動儲存檔案

http://www.b88104069.com/archives/4148

VBA如何同時兩列以上VLOOKUP

http://www.b88104069.com/archives/4146

VBA如何執行VLOOKUP函數

http://www.b88104069.com/archives/4145

--


周末,我們繼續Excel:精華區=>21.心得=>5.其他=>3.office

會計人的Excel小教室: https://www.facebook.com/acctexcel


--
Tags: 會計

All Comments

財報分析課本的年份

Dora avatar
By Dora
at 2017-01-04T18:40
想請問大家 財報分析這門科目 如果是100~102年的書藉(補習班參考書)現在還適用嗎(即IFRS更新有影響嗎?) 對初會的話影響似乎不大 不知道財報分析如何呢 最近要考金融證照 會考到財報分析 而朋友有這科的舊教材 如果還適用的話想說就不另外買了 謝謝各位! - ...

審計CR ARO AE間之變動關係

Doris avatar
By Doris
at 2017-01-04T15:17
在規劃階段時 CR跟AE呈同向變動, DR跟AE呈反向變動, ARO是DR的徒子徒孫,故跟AE呈反向變動; 在屬性抽樣中,ARO跟CR呈同向變動, 想問大家,在這種情況下,AE跟CR和ARO間變動關係不是很矛盾嗎? 謝謝各位解惑 ----- Sent from JPTT on my iPhone ...

高點徐錦華成管會、志光張旭政府會計

Oliver avatar
By Oliver
at 2017-01-04T15:02
徵 1.高點徐錦華師成管會DVD函授 104-106皆可,只要影像檔,不用講義 2.志光張旭政府會計DVD函授,須是106最新版本, 有影像檔可不附版書,但仍需課本 請來信報價,站內信聯絡,謝謝 - ...

查準部份修正及納稅者權利保護法

Queena avatar
By Queena
at 2017-01-03T23:08
查核準則部份修正 https://goo.gl/FQexIn 納稅者權利保護法 https://goo.gl/YHbOfB 來源: 行政院公報網站 -- Albert Einstein: The most powerful force in the universe is compound int ...

關於團購公報(ifrs釋例、企會、審計)

Robert avatar
By Robert
at 2017-01-03T16:10
今早我打電話跟承辦人連繫, 他說ifrss釋例這星期五會上市(不知有意外嗎??) 若你沒有購買AU.NO.62可以先匯款了。 我等等會寄發EMAIL通知匯款帳號 匯款請星期四(含)前給我。 我好星期五付款。 而62應該會過年前出來, 我是不太想延過年後寄。 沒意外的話,我這星期或下星期就會寄送沒有購買6 ...