Lỗi thời gian chạy VBA trong Excel 2010 (1004) khi sử dụng chức năng SaveAs nếu tệp đã tồn tại.

Đây là một đoạn mã: >
> > >filesavename = Application.GetSaveAsFilename(FileMonth, _ > fileFilter:="(*.xlsm), *.xlsm, (*.xlsx), *.xlsx,(*.xls), *.xls") >' FileMonth là tên Sổ làm việc, các tùy chọn lọc để lưu tệp phiên bản cũ hơn >ActiveWorkbook.SaveAs filesavename > On Error GoTo SaveError >' mã không liên quan khác >' >' >SaveError: >msg = "Tên tệp đã tồn tại và chưa được lưu." & Chr(13) & Chr(13) _ > & "Kiểm tra xem Năm và Tháng có chính xác không." & Chr(13) & Chr(13) >MsgBox msg >
>Kết thúc Sub>
> Hoạt động trơn tru cho đến khi tên tệp trùng lặp. > Hộp thoại xuất hiện để phát hiện tệp đã tồn tại với các tùy chọn lưu: Có, Không, Hủy. > Có: hoạt động tốt và tệp được ghi đè. > Không và Hủy: mở hộp thoại lỗi thời gian chạy, thông báo - Phương thức "SaveAs" đối tượng '_Workbook' đã thất bại. > Các tùy chọn là Kết thúc hoặc Gỡ lỗi. > Kết thúc: đóng hộp thoại và mã tiếp tục chạy mà tệp chưa được lưu. >
Nếu hộp thoại lỗi không hiển thị, thì tệp sẽ được lưu và ghi đè lên tệp gốc. > Đã thử xử lý lỗi sau khi lưu dưới dạng tệp khác, nhưng không phát hiện được lỗi. >
Bạn có ý kiến ​​gì không?
>
>



Trả lời:

Hãy thử cách này xem.

Bernie

Dim FileMonth As String
Dim FileSaveName As String

FileMonth = ThisWorkbook.Name

Lấy tên:

FileSaveName = Application.GetSaveAsFilename(FileMonth, _
fileFilter:="(*.xlsm), *.xlsm, (*.xlsx), *.xlsx,(*.xls), *.xls")
'FileMonth là tên của sổ làm việc, các tùy chọn lọc cho phép lưu tệp phiên bản cũ hơn'.
Nếu Dir(FileSaveName) = "" thì
ActiveWorkbook.SaveAs FileSaveName
Khác
Nếu MsgBox("Tệp đó đã tồn tại. Bạn có muốn ghi đè không?", vbYesNo) = vbNo thì GoTo GetName
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs FileSaveName
Application.DisplayAlerts = True
Kết thúc nếu
' mã khác không liên quan
'
'

Comments

Popular posts from this blog

Điều tôi muốn làm trong Excel 2010 là tạo một nút tùy chỉnh và gắn nó vào thanh công cụ Truy nhập nhanh và chạy một macro cụ thể.

Excel 2016 - mở tất cả các tệp trong MỘT phiên bản

Mở tài liệu Excel và Word từ Outlook Lỗi - Không đủ bộ nhớ