2016-11-10 17 views
5

Tôi có một bộ sưu tập lớn các tệp excel hoạt động gần giống như một chương trình và chúng chạy trên nhiều máy tính (với các phiên bản khác nhau của cửa sổ), và theo latelly, tôi có số này xấu vấn đề, khi người dùng nhấn nút đóng của tôi (thực sự là một hình ảnh tôi liên tưởng một macro với), với mã gọi:"ThisWorkbook.Close" Gây excel cho sự cố

ThisWorkbook.Close savechanges:=True 

Nó gây ra 2 trong số 4 máy tính hỗ trợ để crach EXCEL (Windows XP = OK, Windows 10 = OK 1 BAD KHÁC, Windows 8 = BAD) .

enter image description here

Chúng tôi đã tách vụ việc để dòng này cụ thể của mã (làm một tờ 1 file excel chỉ với một nút đóng, và nó vẫn bị treo) Tôi đã lưu ý rằng nếu file excel không duy nhất mở, đôi khi nó không sụp đổ (có lẽ vấn đề là với mức đóng cửa vượt trội chính nó)

những gì tôi đã làm là separeted 2 báo cáo vì vậy nếu (khi nào) nó bị treo nó đã được lưu:

ThisWorkbook.Save 
ThisWorkbook.Close 

Có ai có thể làm sáng đèn không? Tôi thực sự bị lạc. Tôi đã thử tất cả các lựa chọn thay thế tôi có thể nghĩ ra (activeworkbook ...)

Tl; dr:"ThisWorkbook.Close" Nguyên nhân xuất sắc để sụp đổ

Trả lời

7

Đây là một lỗi tiêu chuẩn trong Microsoft Excel. Không chắc chắn nếu Microsoft có bất kỳ sửa chữa nào. Tuy nhiên, có nhiều cách giải quyết để khắc phục vấn đề này.

Sự cố này xảy ra khi sự kiện "Đóng" được kích hoạt từ sự kiện nhấp chuột nhưng hoạt động tốt với các sự kiện khác như "Lựa chọn thay đổi". Để giải quyết vấn đề này, bạn có thể thử cái này:

Thêm đoạn mã sau vào sự kiện click của nút:

Private Sub CloseButton_Click() 
    Cancel = True 
    Application.OnTime Now, "Close_Xls" 
End Sub 

Trong một mô-đun tiêu chuẩn, thêm đoạn mã sau

Sub Close_Xls() 
    ThisWorkbook.Close savechanges:=True 
End Sub 

Nó làm việc cho tôi. Hãy cho tôi biết nếu nó hữu ích

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