Gem en sikkerhedskopi af en projektmappe ved hjælp af VBA i Microsoft Excel

Anonim

Man bør tage backup af dataene med jævne mellemrum, da enhver forkert ændring af den anden bruger eller ved et uheld sletning af excel -filen kan ødelægge meget tid og information.

I denne artikel vil vi dække, hvordan du tager backup af Excel -fil ved hjælp af VBA.

I denne artikel vil vi dække to forskellige måder at tage backup ved hjælp af VBA -kode. Vi har skrevet to makroer til at tage backup af Excel -fil.

Makroen "SaveWorkbookBackup" opretter en sikkerhedskopi af Excel -fil med ".bak" -udvidelse i den samme mappe, hvor den aktive projektmappe er gemt.

Makroen "SaveWorkbookBackupToFloppy" opretter en kopi af den aktive projektmappe i drev D, der fungerer som backup -fil for den aktive projektmappe.

Kode forklaring

Hvis ikke ok så

MsgBox "Sikkerhedskopi ikke gemt!", VbExclamation, ThisWorkbook.Name

Afslut Hvis

Ovenstående kode bruges til visning af fejlmeddelelser, når der opstår nogle runtime -fejl under udførelsen af ​​makroen.

Hvis AWB.Path = "" Så

'Visning af dialogboksen Gem som fil til arkivering

Application.Dialogs (xlDialogSaveAs) .Vis

Ovenstående kode bruges til visning af dialogboksen Gem som, hvis filen ikke er gemt, før du tager backup af filen.

Følg venligst nedenstående for koden

 Mulighed Eksplicit under SaveWorkbookBackup () Dim AWB som projektmappe, BackupFileName som streng, i som heltal, Ok som boolsk ved fejl GoTo NotAbleToSave Set AWB = ActiveWorkbook 'Tildel hele filstien langs filnavnet til variablen BackupFileName BackupFileName = AWB.FullName' Kontrollerer, om filen gemmes 'Hvis filen ikke er gemt, gemmes filen Hvis AWB.Path = "" Herefter' Visning som dialogboks Gem som fil til at gemme Application.Dialogs (xlDialogSaveAs) .Show Else 'Fjernelse af filtypenavn fra filnavn i = 0 Mens InStr (i + 1, BackupFileName, ".")> 0 'Find filtypen i = InStr (i + 1, BackupFileName, ".") Wend If i> 0 Then BackupFileName = Left (BackupFileName, i - 1) 'Tilføjelse af backup -udvidelse ".bak" med filnavn BackupFileName = BackupFileName & ".bak" Ok = Falsk Med AWB .Save' Oprettelse af sikkerhedskopi af fil .SaveCopyAs BackupFileName Ok = True End With End If NotAbleToSave: 'Kode til fejlhåndtering Sæt AWB = Intet hvis ikke ok, så er MsgBox "Backupskopi ikke gemt!", 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 'Angiv stien til sikkerhedskopiering i D -drev DriveName = "D : \ "'Initialisering af variablerne Angiv AWB = ActiveWorkbook BackupFileName = AWB.Name Ok = Falsk' Kontrol af, om filen er gemt 'Hvis filen ikke er gemt, gemmes filen Hvis AWB.Path =" "Herefter' Visning af dialogboksen Gem som fil gemmer Application.Dialogs (xlDialogSaveAs) .Vis ellers 'Sletter fil, hvis sikkerhedskopifilen allerede findes Hvis Dir (DriveName & BackupFileName) "" Derefter dræber DriveName & BackupFileName End If With AWB .Save' Opretter sikkerhedskopifilen .SaveCopyAs DriveName & BackupFileName Ok = True End With End If NotAbleToSave: 'Kode til fejlhåndtering Indstil AWB = Intet hvis ikke Ok Så er MsgBox "Backupskopi ikke gemt!", VbExclamation, ThisWorkbook.Name End If End Sub 

Hvis du kunne lide denne blog, kan du dele den med dine venner på Facebook. Du kan også følge os på Twitter og Facebook.

Vi vil meget gerne høre fra dig, lad os vide, hvordan vi kan forbedre vores arbejde og gøre det bedre for dig. Skriv til os på e -mail -stedet