Страницы: 1
RSS
Обратиться к листу по кодовому имени
 
И так, и эдак... То ли отдохнуть пора?

У листа есть видимое имя, есть кодовое: wsList(Листище)
В данной книге можно работать и с одним, и с другим:
With Worksheets("Листище")
With wsList
Открываем другую книгу:
Код
Dim wBook As Object
...
    Set wBook = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & Имя_Книги_ с_Листищем) 
    
    With wBook        
With wBook.sheets("Листище")
With wBook.sheets(1)

 Вот тут проблема. Хочу обратиться к листу не по номеру и не через видимое имя (переместили или переименовали...). Не поддается.
Прошу направить на путь истинный.
 
Используя функцию Климова:

Код
    With getSheetWithCodeName("НужноеИмя", wBook.Worksheets)
    MsgBox .[b10]
    End With
    
End Sub

Public Function getSheetWithCodeName(CodeName$, SourceNames As Object) As Object
    Dim iList As Object
    For Each iList In SourceNames
        If StrComp(iList.CodeName, CodeName, vbTextCompare) = 0 Then
           Set getSheetWithCodeName = iList
           Exit Function
        End If
    Next
End Function
 
Изменено: Hugo - 13.07.2014 20:21:34
 
Подозревал, что без перебора не обойтись. Но надеялся же! :)
Спасибо, буду привинчивать.
 
Ну раз Климов показал перебор - вероятно иначе никак...
 
Можно и иначе.

В той книге, на чей лист хотим ссылаться, желательно сменить имя проекта (по умолчанию VBAProject)  на более осмысленное и уникальное.
Ну, к примеру, vbpMainBase

В том файле, откуда хотим ссылаться - в референсах ставим галочку на наш проект vbpMainBase
Ну и дальше - всё совсем просто: в коде пишем  vbpMainBase, ставим точку - и наслаждаемся всеми плюшками intellisense, в т.ч. прекрасно видим список кодовых имен листов данного проекта.
Изменено: ikki - 13.07.2014 21:38:51 (очепятке)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Не очень понял, в чём затруднения - нужно обратиться к листу по его кодовому имени?
Код
Sub TestCodeName()
    With Лист1
        .Activate
    End With
End Sub

 
 
Затруднения в том, что код здесь, а лист там.
Цитата
в референсах ставим галочку на наш проект vbpMainBase
Спасибо. Попробую-проверю. Таких файлов-источников может быть много, но создаются они "отсюда".
Страницы: 1
Наверх