Tento tutoriál předvede, jak získat a nastavit název sešitu ve VBA.
Můžeme získat nebo nastavit název aktivního sešitu ve VBA, nebo procházet všechny otevřené sešity v Excelu a získat nebo nastavit název každého z nich pomocí smyčky VBA.
Získejte název sešitu
Abychom získali název aktivního sešitu, musíme použít vlastnost name objektu sešitů.
12345 | Sub GetWorkbookName ()Dim strWBName jako řetězecstrWBName = ActiveWorkbook.NameMsgBox strWBNameEnd Sub |
Pokud bychom spustili výše uvedený kód, viděli bychom na obrazovce okno se zprávou s názvem aktivního sešitu.
Chcete -li procházet všemi aktivními sešity a vracet názvy sešitů do Excelu, můžeme spustit následující kód:
1234567 | Sub GetWorkbookNames ()Dim wb jako sešitPro každý wb v sešitechActiveCell = wb.NameActiveCell.Offset (1, 0). VybertedalšíEnd Sub |
Výše uvedené příklady budou zahrnovat příponu souboru (např. Xlsx). Pokud rozšíření nechcete zahrnout, existuje několik metod, které můžeme použít k získání pouze názvu souboru sešitu.
Získejte název sešitu bez rozšíření
K odstranění jakýchkoli znaků za tečkou v názvu souboru můžeme použít funkce DOLEVA a INSTR:
12345 | Sub GetWorkbookName ()Dim strWBName jako řetězecstrWBName = Vlevo (ActiveWorkbook.Name, InStr (ActiveWorkbook.Name, ".") - 1)MsgBox strWBNameEnd Sub |
K odstranění 5 znaků z konce názvu souboru můžeme použít funkce DOLEVA a DÉLKA:
12345 | Sub GetWorkbookName ()Dim strWBName jako řetězecstrWBName = vlevo (ActiveWorkbook.Name, Len (ActiveWorkbook.Name) - 55)MsgBox strWBNameEnd Sub |
Nastavení názvu sešitu
Chcete -li nastavit název sešitu ve VBA, stále používáme vlastnost Název sešitu, tuto metodu však nemůžeme použít ke změně názvu aktivního sešitu. Důvodem je skutečnost, že aktivní sešit je otevřený a dojde k chybě přístupu k souboru. Abychom to překonali, můžeme soubor uložit pod novým názvem a poté starý soubor odstranit.
12345678910 | Veřejná podsada SetWorkbookName ()Dim strPath jako řetězecDim strNewName jako řetězecDim strOldName jako řetězecstrOldName = ActiveWorkbook.NamestrNewName = InputBox ("Zadejte nový název sešitu")strPath = ActiveWorkbook.PathActiveWorkbook.SaveAs strPath & "/" & strNewNameZabijte strPath & "/" & strOldNameEnd Sub |
K přejmenování sešitu, který není otevřený, můžeme použít metodu Name.
123 | Veřejná dílčí přejmenovávaná pracovní kniha ()Název "C: \ Data \ MyFile.xlsx" jako "C: \ Data \ MyNewFile.xlsx"End Sub |