Tallenna työkirjan varmuuskopio VBA: n avulla Microsoft Excelissä

Anonim

Tiedot tulisi varmuuskopioida säännöllisin väliajoin, koska toisen käyttäjän tekemät virheelliset muutokset tai Excel -tiedoston vahingossa poistaminen voivat pilata paljon aikaa ja tietoja.

Tässä artikkelissa käsitellään Excel -tiedoston varmuuskopiointia VBA: n avulla.

Tässä artikkelissa käsitellään kahta eri tapaa ottaa varmuuskopio VBA -koodilla. Olemme kirjoittaneet kaksi makroa Excel -tiedoston varmuuskopioimiseksi.

"SaveWorkbookBackup" -makro luo varmuuskopion Excel -tiedostosta, jonka laajennus on .bak samaan kansioon, johon aktiivinen työkirja tallennetaan.

"SaveWorkbookBackupToFloppy" -makro luo kopion aktiivisesta työkirjasta asemalle D, joka toimii aktiivisen työkirjan varmuuskopiotiedostona.

Koodin selitys

Jos ei OK niin sitten

MsgBox "Varmuuskopiota ei tallennettu!", VbExclamation, ThisWorkbook.Name

Loppu Jos

Yllä olevaa koodia käytetään virheilmoituksen näyttämiseen, kun jonkin ajonaikaisen virheen esiintyy makron suorituksen aikana.

Jos AWB.Path = "" Sitten

'Näytetään Tallenna nimellä -valintaikkuna tiedostojen tallentamista varten

Application.Dialogs (xlDialogSaveAs) .Näytä

Yllä olevaa koodia käytetään Tallenna nimellä -valintaikkunan näyttämiseen, jos tiedostoa ei ole tallennettu ennen tiedoston varmuuskopiointia.

Seuraa koodia alla

 Option Explicit Sub SaveWorkbookBackup () Dim AWB As Workbook, BackupFileName As String, i As Integer, Ok As Boolean On Error GoTo NotAbleToSave Set AWB = ActiveWorkbook 'Määritä tiedoston koko polku tiedostonimen mukaan muuttujalle BackupFileName BackupFileName = AWB.FullName tiedosto on tallennettu 'Jos tiedostoa ei tallenneta, tiedoston tallentaminen If AWB.Path = "" Sitten "Näytetään Tallenna nimellä -valintaikkuna tiedoston tallentamiseksi Application.Dialogs (xlDialogSaveAs) .Näytä muut" Tiedostopäätöksen poistaminen tiedostonimestä i = 0 Vaikka InStr (i + 1, BackupFileName, ".")> 0 'Etsi tiedostopääte i = InStr (i + 1, BackupFileName, ".") Wend Jos i> 0 Sitten BackupFileName = Vasen (BackupFileName, i - 1) 'Varmuuskopiointilaajennuksen ".bak" lisääminen tiedostonimellä BackupFileName = BackupFileName & ".bak" Ok = False With AWB .Save "Tiedoston varmuuskopion luominen .SaveCopyAs BackupFileName Ok = Todellinen loppu loppuun, jos NotAbleToSave:' Virheenkäsittelykoodi Aseta AWB = Ei mitään, jos ei kunnossa Sitten MsgBox "Varmuuskopiota ei tallennettu!", VbExclamation, ThisWork book.Name End Jos End Sub Sub SaveWorkbookBackupToFloppy () Dim AWB Workbook, BackupFileName As String, i As Integer, Ok As Boolean Dim DriveName As String On Error GoTo NotAbleToSave 'Määritä varmuuskopioinnin polku D -asemassa DriveName = "D : \ "'Muuttujien alustaminen Aseta AWB = ActiveWorkbook BackupFileName = AWB.Name Ok = False' Tarkistetaan, onko tiedosto tallennettu 'Jos tiedostoa ei tallenneta, tiedoston tallentaminen If AWB.Path =" "Sitten" Näytetään Tallenna nimellä -valintaikkuna tiedoston tallennus Application.Dialogs (xlDialogSaveAs) .Show Else 'Tiedoston poistaminen, jos varmuuskopiotiedosto on jo olemassa Jos Dir (DriveName & BackupFileName) "" Tapa sitten DriveName & BackupFileName End If AWB .Save' Varmuuskopiotiedoston luominen .SaveCopyAs DriveName & BackupFileName Ok = Todellinen loppu ja loppu, jos NotAbleToSave: 'Virheiden käsittelykoodi Aseta AWB = Ei mitään, jos ei OK Sitten MsgBox "Varmuuskopiota ei tallennettu!", VbExclamation, ThisWorkbook.Name End If End Sub 

Jos pidit tästä blogista, jaa se ystävillesi Facebookissa. Voit myös seurata meitä Twitterissä ja Facebookissa.

Haluaisimme kuulla sinusta, kerro meille, kuinka voimme parantaa työtämme ja parantaa sitä sinulle. Kirjoita meille sähköpostitse