2014-05-14 34 views
0

我正在寫表格的內容從訪問excel(打開excel文件訪問)寫完後,我試圖保存在appXL應用程序中的所有工作簿。爲此,我在儲存之前將DispalyAlerts設爲false。寫完內容後,我正在關閉訪問。寫完之後,當我試圖關閉excel時,它不會提供任何警告,如是否要保存內容?顯示警報沒有啓用excel文件從訪問vba

我的VBA代碼

 Sub Writexl() 

     Dim appXL As Excel.Application 
     Dim wb As Excel.Workbook 
     StrwbPath="C:\temp\sample.xls" 

     Set appXL = CreateObject("Excel.Application") 
     With appXL 
     Set wb = .Workbooks.Open(StrwbPath) 
     .Visible = True 

     End With 

     'here code for writing contents   


     'save workbook after writing 

     appXL.Application.DisplayAlerts = False 

     For Each w In appXL.Application.Workbooks 
     w.Save 
     Next w 

     appXL.Application.DisplayAlerts = True 

     DoCmd.Quit acQuitSaveAll 
     Application.Quit 
     End sub 
+2

你在哪裏關閉Excel?我看到一個'Application.Quit',但這不是Excel.Application。另外,我相信如果所有打開的工作簿都保存了,那麼就不會顯示警報。 –

+0

我沒有結束excel,它按照要求寫完後仍然打開。在保存內容或寫入內容後,我們是否可以啓用顯示警報? – sam

+2

警報*已啓用,除非您正在執行其他操作來關閉它們。正如目前所描述的那樣,當您關閉Excel時,根本沒有要顯示的警報。所有的工作簿都保存了。沒有什麼可以提醒你的。 –

回答

0

您的DisplayAlerts設置爲應用程序的應用程序了

appXL.Application.DisplayAlerts = True 

在概念上等同於

Excel.Application.Application.DisplayAlerts = True 

那麼該屬性在母集應用程序到Excel。

嘗試

appXL.DisplayAlerts = True 
+0

hmmm,但是他在設置爲'False'時也做了這個任務,所以實際上並沒有實際設置'Excel.Application.DisplayAlerts = False'開頭。所以這個改變雖然是一個很好的建議,但我不認爲這是解決方案。 –

+1

@DavidZemens True。你是絕對正確的。 'AppXL.Application'是自引用。我認爲它可能會給Access ...提供參考。事實上,我嘗試了OP的代碼,它似乎工作。我認爲你的評論是正確的。一切都得救了,沒有什麼可提醒的。 – Brad

+0

@Brad謝謝你的回覆。嘗試之前,但沒有運氣。 – sam

0

寫完後,當我試圖關閉Excel,它是不會放棄 要保存的內容就像做任何警報?

正如@David Zemens所說,當你已經保存所有內容時,它爲什麼會顯示一條消息來保存所有更改。您是否嘗試過更改單元格,然後退出Excel?