Töövihiku varukoopia salvestamine Microsoft Excelis VBA abil

Anonim

Andmetest tuleks korrapäraste ajavahemike järel varukoopiaid teha, kuna teise kasutaja tehtud vale muudatused või Exceli faili kogemata kustutamine võivad rikkuda palju aega ja teavet.

Selles artiklis käsitleme, kuidas VBA abil Exceli failist varukoopiaid teha.

Selles artiklis käsitleme kahte erinevat võimalust varundamiseks VBA -koodi abil. Oleme kirjutanud kaks makrot Exceli faili varundamiseks.

Makro „SaveWorkbookBackup” loob samasse kausta, kuhu aktiivne töövihik salvestatakse, Exceli faili varukoopia laiendiga „.bak”.

Makro „SaveWorkbookBackupToFloppy” loob draivi D aktiivse töövihiku koopia, mis toimib aktiivse töövihiku varufailina.

Koodi selgitus

Kui mitte, siis

MsgBox "Varukoopiat ei salvestatud!", VbExclamation, ThisWorkbook.Name

Lõpp Kui

Ülaltoodud koodi kasutatakse veateate kuvamiseks, kui makro käivitamisel ilmneb mõni käitusaegne viga.

Kui AWB.Path = "" Siis

'Faili salvestamiseks kuvatakse dialoogiboks Salvesta

Application.Dialogs (xlDialogSaveAs). Näita

Ülaltoodud koodi kasutatakse dialoogiboksi Salvesta nime kuvamiseks, kui faili ei salvestata enne faili varundamist.

Palun järgige koodi allpool

 Valik Selgesõnaline alammenüü SaveWorkbookBackup () Dim AWB kui töövihik, BackupFileName kui string, i As Integer, Ok As Boolean On Error GoTo NotAbleToSave Set AWB = ActiveWorkbook 'Määra faili täielik tee mööda failinime muutujale BackupFileName BackupFileName = AWB.FullName fail salvestatakse 'Kui faili ei salvestata, siis faili salvestamine If AWB.Path = "" Siis' Kuvatakse dialoogiboks Salvesta failina faili Application.Dialogs (xlDialogSaveAs) salvestamiseks. Näita teisiti 'Faililaiendi eemaldamine failinimest i = 0 Kuigi InStr (i + 1, BackupFileName, ".")> 0 'Leia faili laiend i = InStr (i + 1, BackupFileName, ".") Wend If i> 0 BackupFileName = Left (BackupFileName, i - 1) 'Varunduslaiendi ".bak" lisamine failinimega BackupFileName = BackupFileName & ".bak" Ok = False with AWB .Save' Faili varukoopia loomine .SaveCopyAs BackupFileName Ok = True End With End If NotAbleToSave: 'Veakäsitluse kood AWB = Mitte midagi, kui ei ole OK, siis MsgBox "Varukoopiat ei salvestatud!", VbExclamation, ThisWork book.Name End Kui End Sub Sub SaveWorkbookBackupToFloppy () Dim AWB kui töövihik, BackupFileName nagu string, i As Integer, Ok As Boolean Dim DriveName String On Error GoTo NotAbleToSave 'Määrake tee varukoopia tegemiseks D drive DriveName = "D : \ "'Muutujate initsialiseerimine Set AWB = ActiveWorkbook BackupFileName = AWB.Name Ok = False' Faili salvestamise kontrollimine 'Kui faili ei salvestata, siis faili salvestamine If AWB.Path =" "Seejärel kuvatakse dialoogiboks Salvesta faili salvestamine Application.Dialogs (xlDialogSaveAs) .Näita teisiti 'Faili kustutamine, kui varufail on juba olemas Kui Dir (DriveName & BackupFileName) "" Siis Tapa DriveName & BackupFileName End If AWB .Save' Varundusfaili loomine .SaveCopyAs DriveName & BackupFileName Ok = tõeline lõpp koos lõpuga, kui NotAbleToSave: 'Veakäsitluse kood Määra AWB = Mitte midagi, kui ei ole OK Siis MsgBox "Varukoopiat ei salvestatud!", VbExclamation, ThisWorkbook.Name End If End Sub 

Kui teile see blogi meeldis, jagage seda oma sõpradega Facebookis. Lisaks saate meid jälgida Twitteris ja Facebookis.

Tahaksime sinust kuulda, andke meile teada, kuidas saaksime oma tööd paremaks muuta ja teie jaoks paremaks muuta. Kirjuta meile meilisaidile