Использовать имя файла книги в качестве имени листа - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь получить имя листа из имени файла, используя код ниже, но я получаю:

Ошибка индекса вне диапазона

Причина Я делаю это потому, что каждый раз, когда мы загружаем и сохраняем этот файл, мы будем переименовывать файл, и то же имя будет применяться и к имени листа. Я знаю, что имя листа также имеет ограничение по количеству символов, вы можете помочь мне исправить это тоже? Заранее спасибо.

Sub Sheet_Name_TEST()
Dim SourceWB As Workbook
Dim SelectFile As Variant
Dim SourceName As String

    SelectFile = Application.GetOpenFilename(FileFilter:="Excel Files (*.XLSX; *.UTX),*.XLSX; *.UTX", Title:="Select File")
    If SelectFile = False Then Exit Sub

Set SourceWB = Workbooks.Open(SelectFile)
    SourceName = SourceWB.Name
    If InStr(SourceName, ".") > 0 Then
       SourceName = Left(SourceName, InStr(SourceName, ".") - 1)
       Debug.Print SourceName
    End If
Set sourceWS = SourceWB.Sheets("SourceName")

End Sub

1 Ответ

0 голосов
/ 26 февраля 2020

Спасибо @Teamothy за указание на мою глупую ошибку. Получил это решено согласно ниже ..

Sub Sheet_Name_TEST()
Dim SourceWB As Workbook
Dim SelectFile As Variant
Dim SourceName As String

    SelectFile = Application.GetOpenFilename(FileFilter:="Excel Files (*.XLSX; *.UTX),*.XLSX; *.UTX", Title:="Select File") 'Select file
    If SelectFile = False Then Exit Sub

Set SourceWB = Workbooks.Open(SelectFile)
       SourceName = Left((Replace((SourceWB.Name), ".utx", "")), 31) 'Get filename > remove extension > trim to 31 characters only
       Debug.Print SourceName
Set sourceWS = SourceWB.Sheets(SourceName)

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...