- Foi vs. Fișe de lucru
- Foi de referință
- Activați vs. Selectați foaia
- Foaie de lucru Variabilă
- Buclați prin toate foile din registrul de lucru
- Protecția foii de lucru
- Proprietate vizibilă a foii de lucru
- Evenimente la nivel de foaie de lucru
- Foaie de lucru Foaie de trișare
- Foaie de trăsături VBA Worksheets
Acesta este ghidul final pentru lucrul cu Foi de calcul / Foi de lucru în Excel.
În partea de jos a acestui ghid, am creat o foaie ieftină cu comenzi comune pentru lucrul cu foi.
Foi vs. Fișe de lucru
Există două moduri de a face referință la Foi folosind VBA. Primul este cu obiectul Foi:
1 | Foi („Sheet1”). Activați |
Cealaltă este cu obiectul Worksheets:
1 | Fișe de lucru („Sheet1”). Activați |
99% din timp, aceste două obiecte sunt identice. De fapt, dacă ați căutat online exemple de coduri VBA, probabil că ați văzut ambele obiecte folosite. Iată diferența:
Colecția Sheets conține foi de lucru ȘI foi de diagrame.
Așadar, folosiți Foi de calcul dacă doriți să includeți Foi de lucru regulate și Foi de diagrame. Utilizați foi de lucru dacă doriți să excludeți foi de diagrame. Pentru restul acestui ghid vom folosi Foi de lucru și Fișe de lucru în mod interschimbabil.
Foi de referință
Există mai multe moduri diferite de a face referire la Foi:
- Foaie activă
- Nume filă foaie
- Număr index foaie
- Numele codului foii
Foaie activă
Foaia activă este foaia activă în prezent. Cu alte cuvinte, dacă ați întrerupt codul și ați analizat Excel, foaia este vizibilă. Exemplul de cod de mai jos va afișa o Casetă de mesaje cu numele ActiveSheet.
1 | MsgBox ActiveSheet.Name |
Numele foii
Probabil că sunteți cel mai familiarizat cu referirea la Foi de calcul după numele filelor:
1 | Foi de calcul („TabName”). Activați |
Număr index foaie
Numărul indexului foii este poziția foii din registrul de lucru. 1 este prima foaie. 2 este a doua foaie etc .:
1 | Foi (1). Activați |
Număr index foaie - Ultima foaie din registrul de lucru
Pentru a face referire la ultima foaie din registrul de lucru, utilizați Foi de calcul.Cont pentru a obține ultimul număr index:
1 | Foi (Sheets.Count). Activați |
Foaia „Numele codului”
Numele codului foii este numele obiectului în VBA:
1 | CodeName.Activate |
Referința foi în alte registre de lucru
De asemenea, este ușor să consultați Foi de calcul în alte registre de lucru. Pentru a face acest lucru, trebuie să utilizați obiectul Cărți de lucru:
1 | Cărți de lucru („VBA_Examples.xlsm”). Foi de lucru („Sheet1”). Activați |
Important: Caietul de lucru trebuie să fie deschis înainte de a putea face referire la Foi de calcul.
Activați vs. Selectați foaia
Într-un alt articol discutăm totul despre activarea și selectarea foilor. Versiunea scurtă este următoarea:
Când activați o foaie, aceasta devine foaia activă. Aceasta este foaia pe care ați vedea-o dacă v-ați uita la programul dvs. Excel. Se poate activa o singură foaie odată.
Activați o foaie
1 | Foi („Sheet1”). Activați |
Când selectați o foaie, aceasta devine și foaia activă. Cu toate acestea, puteți selecta mai multe foi simultan. Când sunt selectate mai multe foi simultan, foaia „de sus” este ActiveSheet. Cu toate acestea, puteți comuta ActiveSheet în foile selectate.
Selectați o foaie
1 | Foi („Foaie1”). Selectați |
Selectați Foi multiple
Utilizați o matrice pentru a selecta mai multe foi simultan:
1 | Fișe de lucru (matrice ("Sheet2", "Sheet3")). Selectați |
Foaie de lucru Variabilă
Atribuiți o foaie de lucru unei variabile vă permite să faceți referire la foaia de lucru după numele variabilei. Acest lucru poate economisi o mulțime de tastare și vă poate face codul mai ușor de citit. Există, de asemenea, multe alte motive pentru care ați putea dori să utilizați variabile.
Pentru a declara o variabilă a foii de lucru:
1 | Dim ws ca foaie de lucru |
Atribuiți o foaie de lucru unei variabile:
1 | Set ws = Foi ("Sheet1") |
Acum puteți face referire la variabila foii de lucru din codul dvs.:
1 | ws.Activați |
Buclați prin toate foile din registrul de lucru
Variabilele foii de lucru sunt esențiale atunci când doriți să parcurgeți toate foile de lucru dintr-un registru de lucru. Cel mai simplu mod de a face acest lucru este:
12345 | Dim ws ca Foaie de lucruPentru fiecare ws din foi de lucruMsgBox ws.nameUrmătorul ws |
Acest cod va parcurge toate foile de lucru din registrul de lucru, afișând numele fiecărei foi de lucru într-o casetă de mesaje. Buclarea prin toate foile dintr-un registru de lucru este foarte utilă atunci când blocați / deblocați sau ascundeți / dezveliți mai multe foi de lucru simultan.
Protecția foii de lucru
Protecția registrului de lucru
Protecția registrului de lucru blochează registrul de lucru de la modificările structurale, cum ar fi adăugarea, ștergerea, mutarea sau ascunderea foilor de lucru.
Puteți activa protecția registrului de lucru folosind VBA:
1 | ActiveWorkbook.Protect Password: = "Parolă" |
sau dezactivați protecția registrului de lucru:
1 | ActiveWorkbook.UnProtect Password: = "Parolă" |
Notă: Puteți, de asemenea, să protejați / să vă protejați fără o parolă, omițând argumentul Parolă:
1 | ActiveWorkbook.Protect |
Protecția foii de lucru
Protecția la nivel de foaie de lucru împiedică modificarea foilor de lucru individuale.
Protejați foaia de lucru
1 | Foi de lucru („Sheet1”). Protejați „parola” |
Desprotejați foaia de lucru
1 | Fișe de lucru („Sheet1”). Anulați protecția „Parolei” |
Există o varietate de opțiuni la protejarea foilor de lucru (permite modificări de formatare, permite utilizatorului să introducă rânduri etc.) Vă recomandăm să utilizați Macro Recorder pentru a înregistra setările dorite.
Aici discutăm despre protecția foii de lucru.
Proprietate vizibilă a foii de lucru
S-ar putea să știți deja că foile de lucru pot fi ascunse:
Există, de fapt, trei setări de vizibilitate a foii de lucru: Vizibil, Ascuns și Foarte ascuns.Foile ascunse pot fi ascunse de orice utilizator Excel obișnuit - făcând clic dreapta în fila tab-ului foii de lucru (prezentată mai sus). Foile foarte ascunse pot fi afișate numai cu codul VBA sau din Editorul VBA. Utilizați următoarele exemple de cod pentru a ascunde / afișa foile de lucru:
Afișați foaia de lucru
1 | Foi de lucru ("Sheet1"). Vizibil = xlSheetVisible |
Ascundeți foaia de lucru
1 | Foi de lucru ("Sheet1"). Visible = xlSheetHidden |
Foarte ascunde foaia de lucru
1 | Foi de lucru ("Sheet1"). Vizibil = xlSheetVeryHidden |
Evenimente la nivel de foaie de lucru
Evenimentele sunt declanșatoare care pot determina executarea „procedurilor de eveniment”. De exemplu, puteți face ca codul să ruleze de fiecare dată când se schimbă orice celulă dintr-o foaie de lucru sau când este activată o foaie de lucru.
Procedurile de evenimente ale foii de lucru trebuie plasate într-un modul de foaie de lucru:
Există numeroase evenimente din foaia de lucru. Pentru a vedea o listă completă, accesați un modul de foaie de lucru, selectați „Foaie de lucru” din prima listă derulantă. Apoi selectați o procedură de eveniment din al doilea meniu derulant pentru ao insera în modul.
Foaie de lucru Activare eveniment
Evenimentele de activare a foii de lucru se execută de fiecare dată când se deschide foaia de lucru.
123 | Private Sub Worksheet_Activate ()Range ("A1"). SelectațiSfârșitul Sub |
Acest cod va selecta celula A1 (resetând zona de vizualizare în partea stângă sus a foii de lucru) de fiecare dată când se deschide foaia de lucru.
Eveniment de schimbare a foii de lucru
Evenimentele de modificare a foii de lucru se execută ori de câte ori se modifică o valoare a celulei pe foaia de lucru. Citiți tutorialul nostru despre Evenimente de modificare a foii de lucru pentru mai multe informații.
Foaie de lucru Foaie de trișare
Mai jos veți găsi o foaie de trucuri care conține exemple de coduri comune pentru lucrul cu foi în VBA
Foaie de trăsături VBA Worksheets
Foaie de lucru VBA CheatsheetDescriere | Exemplu de cod |
---|---|
Referință și activarea foilor de calcul | |
Nume filă | Foi de calcul („Introducere”). Activați |
Numele codului VBA | Foaie 1. Activați |
Poziția indexului | Foi (1). Activați |
Selectați Foaie | |
Selectați Foaie | Foi de calcul („Introducere”). Selectați |
Setați la Variabilă | Dim ws ca Foaie de lucru Setați ws = ActiveSheet |
Nume / Redenumire | ActiveSheet.Name = "NumeNou" |
Foaia următoare | ActiveSheet.Next.Activate |
Buclați prin toate foile | Dim ws ca Foaie de lucru Pentru fiecare WS din foi de lucru Msgbox ws.name Următorul ws |
Buclați prin foi selectate | Dim ws Ca foaie de lucru Pentru fiecare ws în ActiveWindow.SelectedSheets MsgBox ws.Name Următorul ws |
Obțineți ActiveSheet | MsgBox ActiveSheet.Name |
Adăugați o foaie | Foi. Adăugați |
Adăugați foaie și nume | Sheets.Add.Name = "Foaie nouă" |
Adăugați foaie cu numele din celulă | Sheets.Add.Name = interval ("a3"). Valoare |
Adăugați foaie după alta | Sheets.Add After: = Sheets („Introducere”) |
Adăugați foaie după și nume | Sheets.Add (After: = Sheets ("Input")). Nume = "NewSheet" |
Adăugați Foaie înainte și nume | Sheets.Add (Before: = Sheets ("Input")). Nume = "NewSheet" |
Adăugați o foaie la sfârșitul registrului de lucru | Sheets.Add After: = Sheets (Sheets.Count) |
Adăugați o foaie la începutul registrului de lucru | Sheets.Add (Before: = Sheets (1)). Name = "FirstSheet" |
Adăugați o foaie la variabilă | Dim ws Ca foaie de lucru Set ws = Sheets.Add |
Copiați foile de lucru | |
Mutați foaia la sfârșitul registrului de lucru | Foi de calcul („Foaie1”). Mutați după: = Foi de calcul (Foi de calcul). |
În noul registru de lucru | Foi („Sheet1”). Copiați |
Foi selectate către noul registru de lucru | ActiveWindow.SelectedSheets.Copy |
Înainte de altă foaie | Foi de calcul („Foaie1”). Copiați înainte: = Foi de calcul („Foaie2”) |
Înainte de prima foaie | Foi de calcul („Foaie1”). Copiați înainte: = Foi de calcul (1) |
După Ultima foaie | Foi de calcul („Foaie1”). Copiați după: = Foi de calcul (Foi de calcul). |
Copie și nume | Foi de calcul („Foaie1”). Copiați după: = Foi de calcul (Foi de calcul). ActiveSheet.Name = "LastSheet" |
Copiați și denumiți din valoarea celulei | Foi de calcul („Foaie1”). Copiați după: = Foi de calcul (Foi de calcul). ActiveSheet.Name = Range ("A1"). Valoare |
Către un alt registru de lucru | Foi de calcul („Foaie1”). Copiați înainte: = Cărți de lucru („Exemplu.xlsm”). Foi de calcul (1) |
Ascunde / Afișează foi | |
Ascundeți foaia | Foi („Sheet1”). Vizibil = False sau Foi de calcul („Sheet1”). Visible = xlSheetHidden |
Afișează foaia | Foi de calcul („Foaie1”). Vizibil = Adevărat sau Foi de calcul („Sheet1”). Vizibil = xlSheetVisible |
Foarte ascunde foaia | Foi de calcul („Sheet1”). Vizibil = xlSheetVeryHidden |
Ștergeți sau ștergeți Foi de calcul | |
Ștergeți foaia | Foi de calcul („Foaie1”). Ștergeți |
Ștergeți foaia (gestionarea erorilor) | La eroare Reluați în continuare Foi de calcul („Foaie1”). Ștergeți La eroare GoTo 0 |
Ștergeți foaia (fără prompt) | Application.DisplayAlerts = Fals Foi de calcul („Foaie1”). Ștergeți Application.DisplayAlerts = Adevărat |
Ștergeți foaia | Foi („Sheet1”). Celule.Clar |
Ștergeți numai conținutul foii | Foi („Sheet1”). Cells.ClearContents |
Ștergeți foaia folosită | Foi („Sheet1”). UsedRange.Clear |
Protejați sau neprotejați foile | |
Anulați protecția (fără parolă) | Foi de calcul („Foaie1”). Neprotejați |
Anulați protecția (parola) | Foi de calcul („Foaia1”). Anulați protecția „Parolei” |
Protejați (fără parolă) | Foi („Sheet1”). Protejați |
Protejați (parola) | Foi de calcul („Foaie1”). Protejați „Parola” |
Protejați, dar permiteți accesul VBA | Foi de calcul ("Sheet1"). Protejați UserInterfaceOnly: = True |
Deprotejați toate foile | Dim ws Ca foaie de lucru Pentru fiecare ws din foi de lucru ws.Defectați „parola” Următorul ws |