Programovací jazyk VBA (Visual Basic for Applications) se v Excelu často používá k automatizaci úloh a zlepšení výkonu. Jedním z takových úkolů může být získání názvu listu podle názvu souboru. To může být užitečné, například když je třeba komunikovat s různými listy v závislosti na vybraném souboru.
Existuje několik způsobů, jak tento problém vyřešit. Jedním z nich je použití funkce VBA, která vrací název listu podle názvu souboru. K tomu můžeme použít vlastnost" Name "objektu " Workbook", která vrací nebo určuje název souboru.
VBA: Jméno = ThisWorkbook.Name
V tomto případě "ThisWorkbook" představuje aktuální otevřený soubor aplikace Excel a "Name" je vlastnost, která vrací název souboru. Pokud chcete získat pouze název listu bez přípony souboru, můžete použít funkci VBA "Left", která vrací uvedený počet znaků (v tomto případě bez přípony souboru).
Excel: hledání názvu listu podle názvu souboru
V Excelu lze snadno najít název listu pomocí vzorce nebo makra. To může být užitečné, když máte mnoho souborů aplikace Excel s různými názvy listů a musíte najít konkrétní list podle jeho jména.
Chcete-li začít, musíte otevřít soubor Excel, ve kterém chcete najít název listu. Poté vyberte buňku, do které chcete umístit výsledek vyhledávání.
Pomocí vzorce můžete k vyhledání názvu listu podle názvu souboru použít funkci =PROHLOOKUP(hledaný_strok, rozsah_dan, číslo_stránky_výsledek, přiblížení_odpovědnost). Zde:
- hledaný_stránka je název souboru, podle kterého chcete najít název listu.
- rozsah_dan je rozsah, ve kterém chcete hledat. Může to být rozsah obsahující názvy souborů a názvy listů.
- číslo_stránky_výsledek je číslo řádku, do kterého bude umístěn výsledek vyhledávání.
- přibližná_odpovědnost je bulva hodnota, která určuje, zda má být vyhledávání blízké. Pokud je hodnota TRUE, bude vyhledávání provedeno s přibližnou shodou. Pokud se hodnota rovná FALSE, bude vyhledávání provedeno s přesným odpovídáním.
Pokud máte například seznam souborů a názvů listů v rozsahu A1: B5 a název souboru, podle kterého chcete najít název listu, je v buňce D1, vzorec bude vypadat následovně:
=PROHLOOKUP(D1, A1:B5, 2, FALSE)
Makro může být snazší způsob, jak vyhledat název listu podle názvu souboru v Excelu. Zde je příklad makra:
Sub FindSheetName()Dim FileName As StringDim SheetName As String' Получаем имя файла из ячейки D1FileName = ThisWorkbook.Sheets("Sheet1").Range("D1").Value' Ищем имя листа по имени файлаFor Each Sheet In ThisWorkbook.SheetsIf InStr(UCase(Sheet.Name), UCase(FileName)) > 0 ThenSheetName = Sheet.NameExit ForEnd IfNext' Выводим результат в ячейку E1ThisWorkbook.Sheets("Sheet1").Range("E1").Value = SheetNameEnd Sub
Chcete-li použít toto makro, musíte jej přidat do modulu VBA v Excelu. Toto makro pak můžete vyvolat stisknutím klávesové zkratky ALT + F8 a výběrem makra "FindSheetName". Výsledek hledání se zobrazí v buňce E1.
| Výchozí soubor | Název souboru | Název listu | |
|---|---|---|---|
| Soubor1.xlsx | Soubor1 | List1 | List1 |
| Soubor1 | List2 | ||
| Soubor2 | List1 | ||
| Soubor 2.xlsx | Soubor2 | List1 | List2 |
| Soubor1 | List2 | ||
| Soubor2 | List2 |
V uvedeném příkladu bude výsledkem vyhledávání název listu "List2", protože je to jediný název listu, který obsahuje název souboru z buňky D1.