Board logo

標題: [發問] Excel 2007 自動另存新檔 [打印本頁]

作者: macacajau    時間: 2013-12-5 15:19     標題: Excel 2007 自動另存新檔

各位先進好

請問如何用Excel 2007 根據時間來自動另存新檔

小弟想用在報表上面

比如說到下午五點就自動另存一個新的檔案

請問撰寫,謝謝。
作者: luhpro    時間: 2013-12-5 23:51

本帖最後由 luhpro 於 2013-12-5 23:55 編輯

回復 1# macacajau
舉一個最陽春的例子:
以下程式放在 Module1 內
  1. Sub AutoSave()
  2.   ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & Format(Now, "yyyymmdd") & ".xls"
  3. End Sub
複製代碼
以下程式放在 ThisWorkbook 的 Open 內
  1. Private Sub Workbook_Open()
  2.   Application.OnTime TimeValue("17:00:00"), "Module1.AutoSave"
  3. End Sub
複製代碼
[attach]16971[/attach]

有個關鍵是你這個 Excel 檔案必須一直保持開啟著,
萬一沒留意不小心關掉了這個檔案就不會存檔了.
作者: macacajau    時間: 2013-12-6 10:27

回復 2# luhpro

感謝大哥的回覆,我在嘗試看看~
但是小弟不能下載附件~
可以寄到我信箱給我嗎?
[email protected]

謝謝你~
作者: wl02353427    時間: 2013-12-6 11:24

以下是測試出來的方式,這方法不知道穩不穩定,也希望有前輩可以指導,新手學習中...

在工作表1 or ThisWorkbook下:
Private Sub CommandButton1_Click()
startTimer
End Sub

Private Sub CommandButton2_Click()
stopTimer
End Sub

在模組當中:
Sub startTimer()
Application.OnTime Now + TimeValue("00:00:01"), "Increment_count"
End Sub

Sub Increment_count()
hiji = Now()
Range("A1") = hiji

WaitSec = 30 '延遲時間

NameOfThisProcedure = "儲存程序"

NextTime = hiji + TimeSerial(0, 0, WaitSec)

Application.OnTime EarliestTime:=NextTime, Procedure:=NameOfThisProcedure, LatestTime:=NextTime

startTimer
End Sub

Sub 儲存程序()
  ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & Format(Now, "yyyymmdd") & ".xls"
End Sub
[attach]16977[/attach]
作者: wl02353427    時間: 2013-12-6 11:27

回復 3# macacajau

您好,2F前輩的程式碼僅複製上去執行就有效果。
作者: macacajau    時間: 2013-12-6 11:37

回復 5# wl02353427


  大大你好~

請問程式放在 ThisWorkbook 的 Open 內

這是甚麼意思呢?

我測試之後不會自動存檔~

謝謝~
作者: wl02353427    時間: 2013-12-6 11:51

本帖最後由 wl02353427 於 2013-12-6 11:53 編輯

回復 6# macacajau
應該可以直接複製以下使用,那個時間只是確認他有沒有在動而已...
Sub Increment_count()
hiji = Now()
Range("A1") = hiji

WaitSec = 30 '延遲時間

NameOfThisProcedure = "儲存程序"

NextTime = hiji + TimeSerial(0, 0, WaitSec)

Application.OnTime EarliestTime:=NextTime, Procedure:=NameOfThisProcedure, LatestTime:=NextTime

startTimer
End Sub

Sub 儲存程序()
  ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & Format(Now, "yyyymmdd") & ".xls"
End Sub

    [attach]16978[/attach]
作者: macacajau    時間: 2013-12-6 11:57

回復 7# wl02353427


大大你好~

請問那兩個都是要寫程式嗎?

這樣就會自動另存一個新檔嗎?

以下程式放在 ThisWorkbook 的 Open 內
Private Sub Workbook_Open()
  Application.OnTime TimeValue("17:00:00"), "Module1.AutoSave"
End Sub

感謝大大的回覆~ 謝謝!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)