Acest tutorial va arăta cum să obțineți și să setați numele registrului de lucru în VBA.
Putem obține sau seta numele registrului de lucru activ în VBA sau putem parcurge toate registrele de lucru deschise în Excel și putem obține sau seta numele fiecăruia dintre ele folosind un buclă VBA.
Obțineți numele registrului de lucru
Pentru a obține numele registrului de lucru activ, trebuie să folosim proprietatea nume a obiectului de registru de lucru.
12345 | Sub GetWorkbookName ()Dim strWBName As StringstrWBName = ActiveWorkbook.NameMsgBox strWBNameSfârșitul Sub |
Dacă ar fi să rulăm codul de mai sus, am vedea o casetă de mesaj care apare pe ecran cu numele registrului de lucru activ.
Pentru a parcurge toate registrele de lucru active și a returna numele registrelor de lucru în Excel, putem rula următorul cod:
1234567 | Sub GetWorkbookNames ()Dim wb Ca registru de lucruPentru fiecare wb din registrele de lucruActiveCell = wb.NameActiveCell.Offset (1, 0). SelectațiUrmătorulSfârșitul Sub |
Exemplele de mai sus vor include extensia fișierului (de exemplu, xlsx). Dacă nu doriți să includeți extensia, există câteva metode pe care le putem folosi pentru a obține doar numele fișierului din registrul de lucru.
Obțineți numele registrului de lucru fără extensie
Putem folosi funcțiile LEFT și INSTR pentru a elimina orice caractere după perioada din numele fișierului:
12345 | Sub GetWorkbookName ()Dim strWBName As StringstrWBName = Stânga (ActiveWorkbook.Name, InStr (ActiveWorkbook.Name, ".") - 1)MsgBox strWBNameSfârșitul Sub |
Putem folosi funcțiile LEFT și LEN pentru a elimina 5 caractere de la sfârșitul numelui fișierului:
12345 | Sub GetWorkbookName ()Dim strWBName As StringstrWBName = Stânga (ActiveWorkbook.Name, Len (ActiveWorkbook.Name) - 55)MsgBox strWBNameSfârșitul Sub |
Setarea numelui registrului de lucru
Pentru a seta numele unui registru de lucru în VBA, folosim în continuare proprietatea Name a registrului de lucru, totuși nu putem folosi această metodă pentru a schimba numele registrului de lucru activ. Acest lucru se datorează faptului că registrul de lucru activ este deschis și va apărea o eroare de acces la fișier. Pentru a depăși acest lucru, putem salva fișierul cu un nume nou și apoi șterge fișierul vechi.
12345678910 | Public Sub SetWorkbookName ()Dim strPath As StringDim strNewName As StringDim strOldName As StringstrOldName = ActiveWorkbook.NamestrNewName = InputBox ("Vă rugăm să introduceți un nume nou pentru registrul de lucru")strPath = ActiveWorkbook.PathActiveWorkbook.SaveAs strPath & "/" & strNewNameOmoară strPath & "/" & strOldNameSfârșitul Sub |
Pentru a redenumi un registru de lucru care nu este deschis, putem folosi metoda Name.
123 | Public Sub RenameWorkbook ()Denumiți „C: \ Data \ MyFile.xlsx” Ca „C: \ Data \ MyNewFile.xlsx”Sfârșitul Sub |