VBA для переименования листа на основе имени файла

VBA для переименования листа на основе имени файла

Я получил кучу записанных файлов в формате ".Zip". Мой VBA открывает их все и вычитает детали как текст. Поскольку их много, Workbook создает листы и ведет подсчет следующим образом:

ActiveSheet.Paste
Dim sheetsQuantity As Integer
sheetsQuantity = ThisWorkbook.Worksheets.Count
ActiveSheet.Name = "Sheet" & sheetsQuantity - 3

Мне нужно обновить ("Лист" и количество) на имя файла, который был открыт для получения информации, и поскольку файлов много, каждый лист должен соответствовать файлу. Так, если файл № 1 называется "MatchCase.zip", мне нужно, чтобы лист № 1 был "MatchCase.zip" и так далее.

Дайте совет, пожалуйста.

решение1

Это может зависеть от версии Win и структуры файла. Я создал ZIPфайл на рабочем столе под названиемдержатель.Zip. В папке есть один файл с названиемформаты.xlsm

Я открываю файл, выбираю какой-нибудь лист в рабочей книге и просматриваю Pathрабочую книгу, используя:

Sub WhoHoldsMe()
    Dim sPath As String

    sPath = ActiveSheet.Parent.Path
    arr1 = Split(sPath, "\")
    arr2 = Split(arr1(UBound(arr1)), "_")

    MsgBox sPath & vbCrLf & arr2(1)

End Sub

Я получил:

введите описание изображения здесь

Очевидно, что у ActiveSheet есть родительский элемент(рабочая тетрадь, держащая лист). Эта рабочая книга имеет путь, который включает имя файла ZIP.


К сожалению, Pathне включает информацию, котораядержатель.zipнаходится на моем рабочем столе.

Связанный контент