Excel VBA Protect Sheet

Att skydda ett kalkylblad är en viktig uppgift för dem som arbetar med Microsoft Excel mycket ofta. Det är en uppgift du behöver för att skydda ditt ark från att redigeras av någon annan användare. Anta att du skickar en rapport till ledningen och sedan ändrar ledningen medvetet eller av misstag parametrarna eller värdena genom rapporten. Det blir hektiskt att identifiera felet samtidigt som omarbetningen är något som förbrukar din tid. För att komma till rätta med det här problemet är det alltid en bra praxis att skydda ett ark / ar för att redigeras med ett lösenord. Det här alternativet hjälper dig genom att inte låta en användare göra några ändringar i arket. Du kan också dela lösenordet med den person som är avsedd och behörig att göra ändringarna. Även om Excel har alternativet Protect Worksheet i det genom fliken Review som finns i Excel-bandet, blir det hektiskt när du har mer än ett ark att skydda. Det kommer att konsumera gott om din tid att skydda varje ark en och en. Istället är det en bra praxis att skriva en VBA-kod som kan skydda antingen enskilda eller flera ark från din arbetsbok för redigering.

Syntax av VBA Protect Sheet

Med den inbyggda VBA-funktionen som är associerad med kalkylbladet kan du skydda arket med hjälp av lösenord. Syntaxen för VBA Protect Sheet-funktionen är som nedan:

Alla parametrar är valfria i den här funktionen som du kan gissa genom de kvadratiska parenteserna som nämns för var och en av dem.

  • Lösenord: Anger lösenord för arket. Om inget tillhandahålls kommer ark att skyddas utan lösenord och användaren kan redigera det utan att bli ombedd för ett lösenord.
  • DrawingObjects: Valfritt argument som gör att du kan skydda olika former på kalkylbladet. Tar booleska värden. Som standard inställd på FALSE.
  • Innehåll: Valfritt argument. Skyddar alla objekt. Som standard är värden inställda till SANT.
  • Scenarier: Skyddar alla olika scenarier. Standardvärdet är satt till SANT.
  • UserInterfaceOnly: Det skyddar användargränssnittet men inte makron. Standardvärdet är SANT om makroen ignoreras såväl som användargränssnittet kommer att skyddas.
  • AllowFormattingCells: Standardvärdet är inställt på FALSE på grund av vilken användare inte kan formatera arkets celler. Om den är SAND, kan användaren formatera cellerna från arket.
  • AllowInsertingColumns: Standardvärde inställt på FALSE. Om den är SAND, kan användaren infoga en kolumn i arket.
  • AllowInsertingRows: Standardvärdet är inställt på FALSE. Om den är SAND, kan användaren infoga rader i arket.
  • AllowInsertingHyperlinks: Standardvärdet är inställt på FALSE. Om den är SAND, kan användaren infoga hyperlänkar i arket.
  • AllowDeletingColumns: Standardvärdet är inställt på FALSE. Om den är SAND, kan användaren ta bort valfri kolumn från arket.
  • AllowDeletingRows: Standardvärdet är inställt på FALSE. Om den är SAND, kan användaren radera valfritt antal rader från arket.
  • AllowSorting: Standardvärdet är inställt på FALSE. Om den är SAND, kan användaren sortera data som finns i arket.
  • AllowFiltering: Standardvärdet är inställt på FALSE. Om den är SAND, kan användaren filtrera de data som finns i arket.
  • AllowUsingPivotTables: Standardvärdet är inställt på FALSE. Om den är SAND, kan användaren använda och ändra pivottabellerna.

Hur skyddar du ark i Excel VBA?

Nedan följer de olika exemplen för att skydda ark i Excel med VBA Protect.

Du kan ladda ner denna VBA Protect Sheet Excel Mall här - VBA Protect Sheet Excel Mall

VBA Protect Sheet - Exempel # 1

Anta att vi har ett ark som heter "Exempel 1" i en arbetsbok med namnet "VBA Protect Sheet". Vi vill att detta blad ska skyddas med ett lösenord. För detta följer du stegen nedan:

Steg 1: Sätt i en ny modul i Visual Basic Editor (VBE). Klicka på Infoga > välj modul .

Steg 2: Definiera en ny delprocedur i modulen.

Koda:

 Subexempel_1 () Avsluta sub 

Steg 3: Nu måste vi använda Protect-funktionen som kan tillämpas på ett objekt som heter Worksheet. Starta koden med kalkylarkobjekt och skriv namnet på kalkylbladet inom parenteser som du vill skyddas.

Koda:

 Subexempel_1 () Arbetsblad ("Exempel 1") Avsluta sub 

Steg 4: Sätt nu en punkt efter stängande parenteser och använd Skydda nyckelord som initierar processen för att skydda arket som heter " Exempel 1 ".

Koda:

 Subexempel_1 () Arbetsblad ("Exempel 1"). Skydda slutunder 

Du kan stanna här medan du skyddar ett ark. Eftersom alla argument är valfria kommer ditt ark fortfarande att skyddas men kommer inte att be användaren att mata in lösenordet innan redigering och kommer att vara samma som ett oskyddat ark. Du skulle verkligen inte vilja det på det här sättet. Lägg därför till ett starkt lösenord för att skydda detta ark i nästa steg.

Steg 5: Ange lösenord för lösenord och använd ett starkt lösenord för att skydda detta ark.

Koda:

 Subexempel_1 () Arbetsblad ("Exempel 1"). Skydda lösenord: = " " Slut sub 

Vi kommer bara att använda det första argumentet för funktionen som kallas som lösenord och för vila alla argument kommer vi att gå med standardvärdena.

Steg 6: Det här är det, du kan köra den här koden genom att trycka på F5 eller Run-knappen och kan se att filen nu är skyddad och kommer att fråga användaren om lösenordet så snart han / hon försöker redigera någon av cellerna.

Så här skyddar vi ett ark med VBA Protect-funktionen.

VBA Protect Sheet - Exempel # 2

Nu vill vi skydda alla ark som finns i en arbetsbok. För detta följer du stegen nedan:

Steg 1: Definiera en delprocedur i modulen.

Koda:

 Sub Exempel_2 () Slut Sub 

Steg 2: Definiera en ny variabel som kalkylblad med Dim.

Koda:

 Subexempel_2 () Dim wrk_sht Som kalkylbladets slut Sub 

Steg 3: Starta en For-loop. Den här slingan bör köras till sista kalkylbladet i Aktiv arbetsbok.

Koda:

 Subexempel_2 () Dim wrk_sht som arbetsblad för varje wrk_sht i ActiveWorkbook.Worksheets slut sub 

Denna kodrad väljer varje kalkylblad i den aktiva arbetsboken och lagrar den under variabel wrk_sht för varje iteration av slingan. Loop slutar så snart det sista arket i arbetsboken är vald och lagras i variabeln wrk_sht. Vi måste definiera en operation för den här slingan. Det kommer säkert att skydda arket med ett lösenord.

Steg 4: Använd nu Skydda-funktionen för att skydda arken som lagras under variabel wrk_sht för varje iteration av For loop.

Koda:

 Subexempel_2 () Dim wrk_sht som arbetsblad för varje wrk_sht i ActiveWorkbook.Worksheets wrk_sht.Protect Password: = " " End Sub 

Steg 5: Använd nästa uttalande, det gör att slingan kan köras tills varje kalkylblad blir skyddat.

Koda:

 Subexempel_2 () Dim wrk_sht som arbetsblad för varje wrk_sht i ActiveWorkbook.Worksheets wrk_sht.Protect Password: = " " Next End Sub 

Om du kör denna kod kommer varje kalkylblad i den aktiva arbetsboken att skyddas med lösenord och du måste mata in den varje gång du vill redigera arken.

Saker att komma ihåg

  • Det rekommenderas att du använder ett lösenord medan du skyddar ett ark. Annars blir användaren inte ombedd att mata in ett lösenord och kan direkt redigera filen även om du har skyddat den.
  • Det rekommenderas att komma ihåg lösenordet. Annars kommer att glömma samma aldrig aldrig låta dig redigera filen. Du kanske måste gå igenom de olika metoderna om du tappar lösenordet och dessa metoder ligger utanför denna artikel.

Rekommenderade artiklar

Detta är en guide till VBA Protect Sheet. Här diskuterar vi hur man skyddar eller låser ark med VBA Protect-funktion i Excel tillsammans med praktiska exempel och nedladdningsbar Excel-mall. Du kan också gå igenom våra andra föreslagna artiklar -

  1. Hur byter man namn på ark i Excel VBA?
  2. Steg för att avskydda ark i Excel
  3. VBA Activate Sheet (exempel med Excel-mall)
  4. Hur kopierar jag ett Excel-ark?

Kategori: