Страницы: 1
RSS
Выбор названия листа из списка существующих в текущей книге
 
Добрый день, подскажите пожалуйста, можно ли как то в VBA вывести список листов в данной книге в каком либо диалоговом окне и кликом выбрать нужный и забрать название это листа в переменную. как это видится, запускаем макрос - выскакивает окно с перечнем листов (аналогичное когда копируем листы в excel) - выбираем там нужный лист - кликаем Ок и все, имя листа в переменной.
ковырял inputbox, GetOpenFilename, Dialog и т.д. как то безрезультатно.
 
Вот чей-то код, только выбор не по клику, а по номеру в списке.
Код
Sub SwitchExcelWindows()
    Dim i As Integer
    Dim n As Integer
    Dim s As String
    Dim v As Variant

    n = Windows.Count
    s = "Список открытых окон для выбора:"
    For i = 1 To n
        s = s & Chr(10) & i & ")  " & Windows(i).Caption
    Next
    s = s & Chr(10) & "Задайте номер окна из списка от 1 до " & n
    v = Application.InputBox(prompt:=s, Type:=2)
    i = Val(v)
    If i >= 1 And i <= n Then
        Windows(i).Activate
    End If
End Sub
Полагаю. для листов можно сделать аналогично.
Изменено: TheBestOfTheBest - 12.01.2018 12:07:02
Неизлечимых болезней нет, есть неизлечимые люди.
 
TyumenSpirit, если выбирать нужно только рабочие листы (не листы-диаграммы), то можно так
Код
Sub выборЛиста()
Dim r As Range, ws As Worksheet
  On Error Resume Next
  Set r = Application.InputBox("Кликните любую ячейку на нужном листе", Type:=8)
  If Err Then Exit Sub
  Set ws = r.Worksheet
MsgBox ws.Name 'например
End Sub
 
Всем спасибо, последний вариант прижился  
 
Вариант с формой!
"Все гениальное просто, а все простое гениально!!!"
Страницы: 1
Наверх