2012-06-27 20 views
10

Tôi đang viết chương trình VBA chuyển đổi các tệp .xls thành các tệp .csv. Vấn đề là sẽ trả về hộp thoại "Do you want to save the changes to myFile.csv?".VBA workbooks.Đóng ra mà không được nhắc nhở nếu người dùng muốn lưu?

Dưới đây là một đoạn mã của tôi:

currentBook.SaveAs Filename:=fileNameS, FileFormat:=xlCSV, ConflictResolution:=xlLocalSessionChanges  
currentBook.Close SaveChanges:=False 

gì tôi cần phải thêm vì vậy mà tôi không nhận được "? Bạn có muốn lưu các thay đổi myFile.csv" Hộp thoại?

+1

Đây là một bản sao chính xác của [Làm thế nào để ngăn chặn sự lưu dấu nhắc MessageBox trong Excel VBA?] (http://stackoverflow.com/questions/6824816/how-to-avert-the-save-messagebox-prompt-in-excel-vba) và do đó sẽ bị đóng. –

+1

@ Jean-FrançoisCorbett, phương pháp trong bài đăng đó không có tác dụng đối với tôi. – power

+0

Tại sao bạn không thử "DoCmd.SetWarnings False" – VBwhatnow

Trả lời

11

Hãy thử sử dụng ThisWorkbook.Saved = True

 Application.DisplayAlerts = False 
     currentBook.SaveAs Filename:=fileNameS, FileFormat:=xlCSV, ConflictResolution:=xlLocalSessionChanges 
     currentBook.Saved = True    
     currentBook.Close SaveChanges:=False 
     Application.DisplayAlerts = True 
2

Đây là những gì tôi đã làm trong quá khứ và nó làm việc cho tôi:

Application.DisplayAlerts = False 
    ActiveWorkbook.SaveAs Filename:=fileNameS, FileFormat:=xlCSV, conflictResolution:=xlLocalSessionChanges 
Application.DisplayAlerts = True 
ActiveWorkbook.Close False 

Bạn cũng có thể thử đặt Đóng trước DisplayAlerts được đặt lại đúng ...

+0

@ Jean-FrançoisCorbett True, ngoại trừ câu trả lời của tôi đã được đăng trước Alistair Weir. Tôi đã đề cập đến một câu trả lời tương tự đã bị xóa. – Dan

+3

Bạn ngụ ý rằng bạn không thể nhìn thấy tương lai? Không, nghiêm túc, lấy đi, lời xin lỗi của tôi! –

1
Set XC = NTSGetExcell(True) 
XC.Visible = True 
XC.Application.DisplayAlerts = False 
XC.IgnoreRemoteRequests = True 
XC.ActiveWindow.Close False 
XC.Quit 
Set XC = Nothing 
+1

tại sao điều này lại được bình chọn? điều này không trả lời câu hỏi, đó là một mã chỉ trả lời và không biên dịch ... tôi không hiểu –

Các vấn đề liên quan