Запазете резервно копие на работна книга с помощта на VBA в Microsoft Excel

Anonim

Човек трябва да прави резервно копие на данните на редовни интервали от време, тъй като всяка грешна промяна от другия потребител или случайно изтриване на Excel файла може да развали много време и информация.

В тази статия ще разгледаме как да направите резервно копие на Excel файл, използвайки VBA.

В тази статия ще разгледаме два различни начина за архивиране с помощта на VBA код. Написахме два макроса за архивиране на Excel файл.

Макросът „SaveWorkbookBackup“ ще създаде резервно копие на Excel файл с разширение „.bak“ в същата папка, където е записана активната работна книга.

Макросът „SaveWorkbookBackupToFloppy“ ще създаде копие на активна работна книга в устройство D, което ще действа като архивен файл за активната работна книга.

Обяснение на кода

Ако не е добре тогава

MsgBox „Резервно копие не е запазено!“, VbExclamation, ThisWorkbook.Name

Край Ако

Горният код се използва за показване на съобщение за грешка, когато възникне някаква грешка по време на изпълнение по време на изпълнението на макроса.

Ако AWB.Path = "" Тогава

'Показване на диалоговия прозорец Запиши като за запазване на файл

Application.Dialogs (xlDialogSaveAs) .Show

Горният код се използва за показване на диалоговия прозорец Запиши като, ако файлът не е записан, преди да направите резервно копие на файла.

Моля, следвайте кода по -долу

 Опция Изрично Sub SaveWorkbookBackup () Dim AWB Като работна книга, BackupFileName като String, i As Integer, Ok As Boolean On Error GoTo NotAbleToSave Set AWB = ActiveWorkbook 'Задайте пълен път на файла заедно с името на файла към променлива BackupFileName BackupFileName = AWB. файлът е запазен 'Ако файлът не е записан, тогава записването на файла If AWB.Path = "" Тогава "Показване на диалоговия прозорец Запиши като за съхраняване на файлове Application.Dialogs (xlDialogSaveAs). Покажи друго' Премахване на разширението на файла от името на файла i = 0 Докато InStr (i + 1, BackupFileName, ".")> 0 'Намерете разширението на файла i = InStr (i + 1, BackupFileName, ".") Wend Ако i> 0 Тогава BackupFileName = Наляво (BackupFileName, i - 1) "Добавяне на резервно разширение" .bak "с име на файл BackupFileName = BackupFileName &" .bak "Ok = False With AWB .Save 'Създаване на резервно копие на файл .SaveCopyAs BackupFileName Добре = True End With End If NotAbleToSave:' Код за грешка AWB = Нищо, ако не е наред, тогава MsgBox „Архивно копие не е запазено!“, VbExclamation, ThisWork book.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 'Посочете пътя за архивиране в D диск DriveName = "D : \ "'Инициализиране на променливите Задайте AWB = ActiveWorkbook BackupFileName = AWB.Name Ok = False' Проверка дали файлът е запазен 'Ако файлът не е записан, тогава записването на файла If AWB.Path =" "Тогава' Показване на Запазване като диалогов прозорец за записване на файлове Application.Dialogs (xlDialogSaveAs) .Show Else 'Изтриване на файл, ако файлът за архивиране вече съществува, ако Dir (DriveName & BackupFileName) "" След това Убийте DriveName & BackupFileName End If With AWB .Save "Създаване на архивния файл .SaveCopyAs DriveName & Save Ok = True End With End If NotAbleToSave: 'Код за обработка на грешки Задайте AWB = Нищо, ако не е OK Тогава MsgBox "Архивно копие не е запазено!", VbExclamation, ThisWorkbook.Name Край, ако End Sub 

Ако този блог ви е харесал, споделете го с приятелите си във Facebook. Също така можете да ни следвате в Twitter и Facebook.

Ще се радваме да чуем от вас, уведомете ни как можем да подобрим работата си и да я направим по -добра за вас. Пишете ни на имейл сайта