Tento tutoriál vám ukáže, ako získať a nastaviť názov zošita vo VBA.
Môžeme získať alebo nastaviť názov aktívneho zošita vo VBA alebo prechádzať všetkými otvorenými zošitmi v programe Excel a získať alebo nastaviť názov každého z nich pomocou slučky VBA.
Získať názov zošita
Aby sme získali názov aktívneho zošita, musíme použiť vlastnosť name objektu zošitov.
12345 | Sub GetWorkbookName ()Dim strWBName ako reťazecstrWBName = ActiveWorkbook.NameMsgBox strWBNameKoniec pod |
Ak by sme spustili kód uvedený vyššie, na obrazovke by sa zobrazilo okno so správou s názvom Aktívny zošit.
Aby sme mohli prechádzať všetkými aktívnymi zošitmi a vracať názvy zošitov do Excelu, môžeme spustiť nasledujúci kód:
1234567 | Sub GetWorkbookNames ()Dim wb ako zošitPre každý wb v zošitochActiveCell = wb.MenoActiveCell.Offset (1, 0). VyberteĎalšieKoniec pod |
Vyššie uvedené príklady budú zahŕňať príponu súboru (napr. Xlsx). Ak nechcete zahrnúť príponu, existuje niekoľko metód, ktoré môžeme použiť na získanie iba názvu súboru zošita.
Získajte názov zošita bez rozšírenia
Na odstránenie akýchkoľvek znakov za bodkou v názve súboru môžeme použiť funkcie LEFT a INSTR:
12345 | Sub GetWorkbookName ()Dim strWBName ako reťazecstrWBName = vľavo (ActiveWorkbook.Name, InStr (ActiveWorkbook.Name, ".") - 1)MsgBox strWBNameKoniec pod |
Na odstránenie 5 znakov z konca názvu súboru môžeme použiť funkcie LEFT a LEN:
12345 | Sub GetWorkbookName ()Dim strWBName ako reťazecstrWBName = vľavo (ActiveWorkbook.Name, Len (ActiveWorkbook.Name) - 55)MsgBox strWBNameKoniec pod |
Nastavenie názvu zošita
Na nastavenie názvu zošita vo VBA stále používame vlastnosť zošita, ale túto metódu nemôžeme použiť na zmenu názvu aktívneho zošita. Dôvodom je skutočnosť, že aktívny zošit je otvorený a vyskytne sa chyba prístupu k súboru. Aby sme to prekonali, môžeme súbor uložiť s novým názvom a potom starý súbor odstrániť.
12345678910 | Verejná podsúborNázov knihy ()Dim strPath ako reťazecDim strNewName ako reťazecDim strOldName ako reťazecstrOldName = ActiveWorkbook.NamestrNewName = InputBox ("Zadajte nový názov pre zošit")strPath = ActiveWorkbook.PathActiveWorkbook.SaveAs strPath & "/" & strNewNameZabite strPath & "/" & strOldNameKoniec pod |
Na premenovanie zošita, ktorý nie je otvorený, môžeme použiť metódu Name.
123 | Verejná premenovaná pracovná kniha ()Názov "C: \ Data \ MyFile.xlsx" ako "C: \ Data \ MyNewFile.xlsx"Koniec pod |