Board logo

標題: [發問] 能否只關閉想關掉的EXCEL檔就好? [打印本頁]

作者: syuan    時間: 2011-5-17 17:03     標題: 能否只關閉想關掉的EXCEL檔就好?

軟體:EXCEL VBA
版本:2003


各位先進∼∼大家好

小弟在書上有看到能直接關閉EXCEL的語法

書上寫Application.Quit

結果小弟就依樣書葫蘆的寫進程式中;結果一執行後,的確將想要關閉的EXCEL給關了

但程式將桌面其它正開著的EXCEL檔也都關掉了。。。。。。。:'(

記得現在的EXCEL不是已經能單一檔案執行了嗎(就是一個檔案開一個EXCEL)?那程式怎麼會將所有的EXCEL檔也一併關掉了呢?

所以小弟想請問先進們是否有方法,能讓程式只關閉想關的那個EXCEL檔就好

而桌面上其它開著的EXCEL檔則不要去動到!

以上,感謝各位!
作者: GBKEE    時間: 2011-5-17 19:09

回復 1# syuan
ActiveWorkbook.Close False                  '關掉作用中的活頁簿
Workbooks("某某某xls").Close True          '關掉指定的活頁簿
不存檔 Close False ,  存檔 Close true
作者: kimbal    時間: 2011-5-17 22:23

補一個,關掉當前運VBA的EXCEL
Thisworkbook.close false
作者: syuan    時間: 2011-5-18 19:22

感謝GBKEE與kimbal二位先進位的回覆

小弟照二位所指示的語法都試了一遍!發現都可行∼∼

不過Workbooks("某某某xls").Close True這段語法,關閉了活頁簿後,並不會將excel給關閉(就是留一個空白的excel在桌面。。。。。) ∼∼很特別!

不過小弟在試驗Thisworkbook.close false與ActiveWorkbook.Close False時,發現活頁簿與該檔之excel是關起來了,但vbe編輯器尚留在桌面上

所以小弟找到這段語法Application.VBE.CommandBars.FindControl(ID:=752).Execute

只是執行後,vbe編輯器仍留在桌面上..........!

(小弟目前仍在試別的語法!)
作者: GBKEE    時間: 2011-5-18 19:57

回復 4# syuan
vbe編輯器仍留在桌面上..........!
關閉VBE視窗 Application.VBE.MainWindow.Visible = False

ActiveWorkbook.Close False                  
Workbooks("某某某xls").Close True         
thisworkbook.Close True
這些都是活頁簿,所以Close(關閉)的是活頁簿,並不會關閉Excel這應用程式(軟體).
要關閉Excel這應用程式使用 ->   Application.Quit   
Excel vba 的 Application 就是->Excel
  1. Sub Ex()
  2.     Dim A As New Application
  3.     A.Visible = True
  4. End Sub
複製代碼

作者: syuan    時間: 2011-5-22 15:28

回復  syuan
vbe編輯器仍留在桌面上..........!
關閉VBE視窗 Application.VBE.MainWindow.Visible = Fal ...
GBKEE 發表於 2011-5-18 19:57

感謝GBKEE大回覆

  原來那個VBE無法單獨關掉!本來小弟想的是使用者如果開了別的EXCEL檔後(A檔),又開了有寫關掉活頁簿的程式後(B檔),結果使用者將有寫關閉活頁簿的EXCEL檔後(B檔)
會因A檔未關閉,而發現桌面多了個空白的VBE編輯器,可能就會覺得很奇怪!


這樣就有點傷腦筋了。。。。。真的沒辦法關閉VBE嗎?
小弟還是想試試看∼∼
作者: GBKEE    時間: 2011-5-22 16:49

回復 6# syuan
這樣就有點傷腦筋了。。。。。真的沒辦法關閉VBE嗎?
Application.VBE.MainWindow.Visible = False 不就是關閉VBE
作者: syuan    時間: 2011-5-24 15:51

感謝GBEKK大的指導

小弟眼睛"觸目"一時沒看到,抱歉∼∼

小弟後來想到......或許可以不用去管那個VBE!

因為一般使用者會去開VBE起來的機率並不大,所以可以不用去管它

萬一不小心被開起來而又有同事在問,那我直接就跟對方說:不用理它,直接關掉就好∼∼
作者: GBKEE    時間: 2011-5-24 16:07

回復 8# syuan
在程式的尾端加上     Application.VBE.MainWindow.Visible = False  
不就關閉了
作者: syuan    時間: 2011-5-26 11:04

本帖最後由 syuan 於 2011-5-26 11:05 編輯
回復  syuan
在程式的尾端加上     Application.VBE.MainWindow.Visible = False  
不就關閉了
GBKEE 發表於 2011-5-24 16:07



感謝GBKEE先進的指導

  小弟照做之後,出現一個對話框!內容是"執行階段錯誤1004,對於visual basic專案的程式化存取未信任

小弟上網查了一下,發現要去安全性裡的選項;有個叫"信任存取Visual Basic專案"的選項打勾,打勺後就不會出現上述的對話框了!

只是那個信任存取的選項打勾後,excel是不是對於所有vba程式都是變成無防備了呢?這樣好像也挺危險的。。。。。。。
作者: GBKEE    時間: 2011-5-26 11:15

回復 10# syuan
所以重要的檔案要做備份的




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