Tự động lưu file ra một folder khác + (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

nguyendinhtutw

Thành viên chính thức
Tham gia
17/4/17
Bài viết
73
Được thích
3
Giới tính
Nam
Dear các anh,
Em nhờ các anh giúp em một code VBA để tự động lưu file ra một folder khác khi đóng file, và:
1, Trong cùng một ngày, file lưu sẽ bị ghi đè (overwrite) sau mỗi lần đóng file.
2, Sang ngày khác, các file lưu của ngày hôm trước sẽ không bị ghi đè bởi file lưu của ngày hôm sau.
Mong nhận được trợ giúp của các anh GPE, em cảm ơn các anh.
Trân trọng,
 
Dear các anh,
Em nhờ các anh giúp em một code VBA để tự động lưu file ra một folder khác khi đóng file, và:
1, Trong cùng một ngày, file lưu sẽ bị ghi đè (overwrite) sau mỗi lần đóng file.
2, Sang ngày khác, các file lưu của ngày hôm trước sẽ không bị ghi đè bởi file lưu của ngày hôm sau.
Mong nhận được trợ giúp của các anh GPE, em cảm ơn các anh.
Trân trọng,
Bạn dùng thử code này xem sao.
Mã:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:="D:\" & Format(Now(), "DD-MM-YYYY") & ".xlsm", FileFormat _
        :=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Application.DisplayAlerts = True
End Sub
 
Upvote 0
Bạn dùng thử code này xem sao.
Mã:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:="D:\" & Format(Now(), "DD-MM-YYYY") & ".xlsm", FileFormat _
        :=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Application.DisplayAlerts = True
End Sub
Cảm ơn anh, code của anh chạy ngon rồi ạ :D
Anh cho em hỏi thêm, nếu như folder lưu file chưa có sẵn, thì code sẽ như thế nào để sẽ tự tạo ra folder trước khi lưu ạ?
 
Lần chỉnh sửa cuối:
Upvote 0
cẩn thận nếu lỡ tay xóa hết dữ liệu đi khi đóng file thì cả 2 file tèo téo teo ................... trắng tinh :D:p
 
Upvote 0
Cảm ơn anh, code của anh chạy ngon rồi ạ :D
Anh cho em hỏi thêm, nếu như folder lưu file chưa có sẵn, thì code sẽ như thế nào để sẽ tự tạo ra folder trước khi lưu ạ?
Thêm code sau vào Module.
Mã:
Sub MakeAllPath(ByVal PS$)
    Dim PP$
    If PS <> "" Then
        PP = Left(PS, InStrRev(PS, "\") - 1)
        If Dir(PP, vbDirectory) = "" Then
            MakeAllPath Left(PP, InStrRev(PS, "\") - 1)
            If Right(PP, 1) <> ":" Then MkDir PP
        End If
    End If
End Sub
Sau đó sửa code
Mã:
Workbook_BeforeClose
như sau:
Mã:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim s As String
Application.DisplayAlerts = False
s = "D:\A\B\C\": MakeAllPath s
ActiveWorkbook.SaveAs Filename:=s & Format(Now(), "DD-MM-YYYY") & ".xlsm", FileFormat _
        :=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Application.DisplayAlerts = True
End Sub
End Sub
 
Upvote 0
Thêm code sau vào Module.
Mã:
Sub MakeAllPath(ByVal PS$)
    Dim PP$
    If PS <> "" Then
        PP = Left(PS, InStrRev(PS, "\") - 1)
        If Dir(PP, vbDirectory) = "" Then
            MakeAllPath Left(PP, InStrRev(PS, "\") - 1)
            If Right(PP, 1) <> ":" Then MkDir PP
        End If
    End If
End Sub
Sau đó sửa code
Mã:
Workbook_BeforeClose
như sau:
Mã:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim s As String
Application.DisplayAlerts = False
s = "D:\A\B\C\": MakeAllPath s
ActiveWorkbook.SaveAs Filename:=s & Format(Now(), "DD-MM-YYYY") & ".xlsm", FileFormat _
        :=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Application.DisplayAlerts = True
End Sub
End Sub
Đã nhiều lần được đề cập trên GPE rằng: Hàm Dir và MkDir của VB sẽ không có tác dụng nếu đường dẫn có chứa chuỗi tiếng Việt có dấu
Nên dùng Scripting.FileSystemObject để làm điều này. Hoặc dùng MkDir trên DOS là hoàn hảo nhất
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom