Lưu bản sao lưu sổ làm việc bằng VBA trong Microsoft Excel
Bạn nên sao lưu dữ liệu định kỳ vì bất kỳ sửa đổi sai nào của người dùng khác hoặc vô tình xóa tệp excel có thể làm hỏng rất nhiều thời gian và thông tin.
Trong bài này, chúng tôi sẽ giới thiệu cách sao lưu tệp Excel bằng VBA.
Trong bài viết này, chúng tôi sẽ đề cập đến hai cách khác nhau để sao lưu bằng mã VBA. Chúng tôi đã viết hai macro để sao lưu tệp Excel.
Macro “SaveWorkbookBackup” sẽ tạo một bản sao lưu của tệp Excel có phần mở rộng “.bak” trong cùng một thư mục nơi sổ làm việc đang hoạt động được lưu.
Macro “SaveWorkbookBackupToFloppy” sẽ tạo một bản sao của sổ làm việc đang hoạt động trong ổ D. Bản sao này sẽ hoạt động như tệp sao lưu cho sổ làm việc đang hoạt động.
Giải thích mã
If Not Ok Sau đó MsgBox “Backup Copy Not Saved!”, VbExclamation, ThisWorkbook.Name End If Trên mã được sử dụng để hiển thị thông báo lỗi, khi một số lỗi thời gian chạy xảy ra trong quá trình thực thi macro.
If AWB.Path = “” Then ‘Displaying Save as hộp thoại để lưu tệp Application.Dialogs (xlDialogSaveAs) .Show Mã trên được sử dụng để hiển thị hộp thoại Save As, nếu tệp không được lưu trước khi sao lưu tệp.
Vui lòng theo dõi bên dưới để biết mã
Option Explicit Sub SaveWorkbookBackup() Dim AWB As Workbook, BackupFileName As String, i As Integer, Ok As Boolean On Error GoTo NotAbleToSave Set AWB = ActiveWorkbook 'Assign full path of file along file name to variable BackupFileName BackupFileName = AWB.FullName 'Checking whether file is saved 'If file is not saved then saving the file If AWB.Path = "" Then 'Displaying Save as dialog box for file saving Application.Dialogs(xlDialogSaveAs).Show Else 'Removing file extension from file name i = 0 While InStr(i + 1, BackupFileName, ".") > 0 'Find the extension of file i = InStr(i + 1, BackupFileName, ".") Wend If i > 0 Then BackupFileName = Left(BackupFileName, i - 1) 'Adding back up extension ".bak" with file name BackupFileName = BackupFileName & ".bak" Ok = False With AWB .Save 'Creating Backup of file .SaveCopyAs BackupFileName Ok = True End With End If NotAbleToSave: 'Code for error handling Set AWB = Nothing If Not Ok Then MsgBox "Backup Copy Not Saved!", vbExclamation, ThisWorkbook.Name End If End Sub Sub SaveWorkbookBackupToFloppy() Dim AWB As Workbook, BackupFileName As String, i As Integer, Ok As Boolean Dim DriveName As String On Error GoTo NotAbleToSave 'Specify the path for making back up in D drive DriveName = "D:\" 'Initializing the variables Set AWB = ActiveWorkbook BackupFileName = AWB.Name Ok = False 'Checking whether file is saved 'If file is not saved then saving the file If AWB.Path = "" Then 'Displaying Save as dialog box for file saving Application.Dialogs(xlDialogSaveAs).Show Else 'Deleting file if backup file already exists If Dir(DriveName & BackupFileName) <> "" Then Kill DriveName & BackupFileName End If With AWB .Save 'Creating the back up file .SaveCopyAs DriveName & BackupFileName Ok = True End With End If NotAbleToSave: 'Code for error handling Set AWB = Nothing If Not Ok Then MsgBox "Backup Copy Not Saved!", vbExclamation, ThisWorkbook.Name End If End Sub
Nếu bạn thích blog này, hãy chia sẻ nó với bạn bè của bạn trên Facebook và Facebook.
Chúng tôi rất muốn nghe ý kiến từ bạn, hãy cho chúng tôi biết cách chúng tôi có thể cải thiện công việc của mình và làm cho nó tốt hơn cho bạn. Viết thư cho chúng tôi [email protected]