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.

ArrowBackUpFileCreated

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.

ArrowBackUpCopyCreated

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.

NotSaveDialogBox

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.

SaveAs Dialog Box

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]