Board logo

標題: 如何在指定時間自動存檔及關閉EXCEL [打印本頁]

作者: cdkee    時間: 2010-10-20 17:15     標題: 如何在指定時間自動存檔及關閉EXCEL

請教大大,要在下午3時10分自動存檔及關閉EXCEL,應該怎樣寫,謝謝大大!
作者: GBKEE    時間: 2010-10-20 20:19

回復 1# cdkee
http://forum.twbts.com/viewthread.php?tid=1657&extra=&page=1
  1. Sub Ex()
  2.     Application.OnTime "15:10", "AUTO_CLOSE"
  3. End Sub
  4. Sub AUTO_CLOSE()
  5.     ThisWorkbook.Save
  6.     Application.Quit
  7. End Sub
複製代碼

作者: cdkee    時間: 2010-10-20 22:36

回復 2# GBKEE


    謝謝版大指導!
如果在隱藏工具列時,應怎樣改寫,再謝謝版大教授!
[attach]3300[/attach]
作者: cdkee    時間: 2010-10-20 23:49

回復 2# GBKEE


    謝謝版大循循善誘,小輩初次完成功課,請版大檢測,謝謝!
[attach]3302[/attach]
作者: GBKEE    時間: 2010-10-21 08:27

回復 4# cdkee
二選一
ThisWorkbook的程式碼
  1. Private Sub Workbook_Open()
  2.    MsgBox "開啟 Sub Workbook_Open 程式"
  3.   With Application
  4.     '隱藏 Ribbon(功能區)
  5.     .ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
  6.     .StatusBar = False
  7.     .CommandBars("Status Bar").Visible = False
  8.     .StatusBar = True 'False
  9.     .DisplayFormulaBar = False
  10.     .DisplayScrollBars = False
  11.     .Caption = "It's all gone!"
  12.     .ActiveWindow.DisplayHeadings = False
  13.     .ActiveWindow.DisplayWorkbookTabs = False
  14.     '將視窗狀態設為一般
  15.     .WindowState = xlNormal
  16.     .Width = 250
  17.     .Height = 250
  18.   End With
  19.   Application.OnTime "08:22:56", "ThisWorkbook.EX"
  20. End Sub
  21. Private Sub Workbook_BeforeClose(Cancel As Boolean)
  22.     With Application
  23.         '隱藏 Ribbon(功能區)
  24.         .ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"
  25.         .CommandBars("Status Bar").Visible = True
  26.         .DisplayFormulaBar = True
  27.         .DisplayScrollBars = True
  28.         .Caption = "It's all gone!"
  29.         .ActiveWindow.DisplayHeadings = True
  30.         .ActiveWindow.DisplayWorkbookTabs = True
  31.         '將視窗狀態設為一般
  32.         .WindowState = xlMaximized
  33.     End With
  34.     Application.Quit
  35. End Sub
  36. Private Sub EX()
  37.     ThisWorkbook.Close 1
  38. End Sub
複製代碼
Module的程式碼
  1. Sub AUTO_OPEN()
  2.      With Application
  3.         '隱藏 Ribbon(功能區)
  4.         .ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
  5.         .StatusBar = False
  6.         .CommandBars("Status Bar").Visible = False
  7.         .StatusBar = True 'False
  8.         .DisplayFormulaBar = False
  9.         .DisplayScrollBars = False
  10.         .Caption = "It's all gone!"
  11.         .ActiveWindow.DisplayHeadings = False
  12.         .ActiveWindow.DisplayWorkbookTabs = False
  13.     '將視窗狀態設為一般
  14.         .WindowState = xlNormal
  15.         .Width = 250
  16.         .Height = 250
  17.     End With
  18.     Application.OnTime "23:36", "AUTO_CLOSE"
  19. End Sub
  20. Sub AUTO_CLOSE()
  21.     With Application
  22.         '隱藏 Ribbon(功能區)
  23.         .ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"
  24.         .CommandBars("Status Bar").Visible = True
  25.         .DisplayFormulaBar = True
  26.         .DisplayScrollBars = True
  27.         .Caption = "It's all gone!"
  28.         .ActiveWindow.DisplayHeadings = True
  29.         .ActiveWindow.DisplayWorkbookTabs = True
  30.     '將視窗狀態設為一般
  31.         .WindowState = xlMaximized
  32.     End With
  33.     ThisWorkbook.Save
  34.     Application.Quit
  35. End Sub
複製代碼

作者: cdkee    時間: 2010-10-21 17:30

回復 5# GBKEE


   謝謝 版大的多方教導,小輩深被感動!
請教版大:
ThisWorkbook的程式碼中...
問1) Application.OnTime "08:22:56", "ThisWorkbook.EX" <---是因為Private Sub EX() 在ThisWorkbook中?
問2) Private Sub EX() <---在這個例子用Private有沒有特別意思?
問3) Private Sub Workbook_BeforeClose(Cancel As Boolean)與Private Sub Workbook_BeforeClose()有什麼分別?
問4) ThisWorkbook.Save <---是否漏寫這個?
問5) ThisWorkbook.Close 1是否指關閉檔案而不關閉EXCEL?'Close'之後的數字有什麼意思?

Module的程式碼中...
問6) Sub AUTO_OPEN()...不用Private Sub Workbook_Open()是因為在Module的程式不可用Private?或有其他因素?

問7) 小輩仍然分不清,何時用Sheet/ThisWorkbook,何時用Module?
小輩問題多多,煩請版大引導,謝謝!
作者: GBKEE    時間: 2010-10-21 20:34

回復 6# cdkee
問1) 沒錯   Application.OnTime "08:22:56", "ThisWorkbook.EX"
程序在 ThisWorkbook,Sheet1,Sheet2 ....等 物件模組 需指明, 程序在一般模組(Module)內則不需指明程序所在的模組.
問2) Private Sub EX() <---在這個例子用Private有沒有特別意思?  
Sub EX() => Public Sub EX(),是公用的其他物件模組或 一般模組(Module)都可以使用的.
Private Sub EX() 是私用的,其他物件模組或 一般模組(Module) 無法使用.
例如有Private Sub EX() 及 Sub Example() 兩程序 在指令 [工具]->[巨集] 只可以找到Sub Example()
問3) Private Sub Workbook_BeforeClose(Cancel As Boolean)與Private Sub Workbook_BeforeClose()有什麼分別?
Private Sub Workbook_BeforeClose(Cancel As Boolean) 是於關閉Workbook時的內建觸動事件
Private Sub Workbook_BeforeClose()因與上述內建觸動事件名稱相同,如在ThisWorkbook物件模組內是不允許的.
問4) ThisWorkbook.Save <---是否漏寫這個?   看不明白你的意思
問5) ThisWorkbook.Close 1    正式寫法 ThisWorkbook.Close SaveChanges:=True   (VBA   False=0, True=1)
問6) Sub AUTO_OPEN()...不用Private Sub Workbook_Open()是因為在Module的程式不可用Private?或有其他因素?
Private Sub Workbook_Open() 是Workbook開啟時的內建觸動事件,放於Module的程式碼中,不會於檔案開檔時自動執行.
問7) 小輩仍然分不清,何時用Sheet/ThisWorkbook,何時用Module?
     多多練習後會融會貫通的!!
作者: cdkee    時間: 2010-10-21 23:38

回復 7# GBKEE


    先謝謝版大詳細講解,小輩在學習中。
作者: apolloooo    時間: 2011-1-14 22:54

我也有學到一些手法了。
xxx.show 0 或  1   ,也是一樣的意思。




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