Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2018, 12:43   #11
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Берёте названия в коллекцию (ну или считаете количество), объявляете такой массив, набиваете его именами/названиями, используете.
Например:
Код:
Sub tt()
    Dim col As New Collection, c As Range, i&
    For Each c In [a1].CurrentRegion.Cells
        col.Add Trim(c)
    Next
    ReDim arr(0 To col.Count - 1)
    For i = 1 To col.Count: arr(i - 1) = col(i): Next
    Worksheets(arr).Select
End Sub
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 08.06.2018 в 12:48.
Hugo121 вне форума Ответить с цитированием
Старый 08.06.2018, 22:50   #12
autostavrroute
Пользователь
 
Регистрация: 07.06.2018
Сообщений: 40
По умолчанию

Private Sub Кнопка37_Щелчок()

Dim Lar As Variant
Lar = Sheets("График").Range("D5")
Sheets(Lar).Select
End Sub

Так работает но для одной ячейки и выделяет одноименный лист. Как правильно описать если
Lar = Sheets("График").Range("D5:F5")

Последний раз редактировалось autostavrroute; 09.06.2018 в 01:41.
autostavrroute вне форума Ответить с цитированием
Старый 09.06.2018, 00:20   #13
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Lar = Sheets("График").Range("D5:D8").Val ue
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 09.06.2018, 01:43   #14
autostavrroute
Пользователь
 
Регистрация: 07.06.2018
Сообщений: 40
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
Lar = Sheets("График").Range("D5:D8").Val ue
Я так понимаю тут нужен алгоритм переобъявления массива ReDim Lar - но что-то я не соберу все в кучу.
autostavrroute вне форума Ответить с цитированием
Старый 09.06.2018, 01:45   #15
autostavrroute
Пользователь
 
Регистрация: 07.06.2018
Сообщений: 40
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Берёте названия в коллекцию (ну или считаете количество), объявляете такой массив, набиваете его именами/названиями, используете.
Например:
Код:
Sub tt()
    Dim col As New Collection, c As Range, i&
    For Each c In [a1].CurrentRegion.Cells
        col.Add Trim(c)
    Next
    ReDim arr(0 To col.Count - 1)
    For i = 1 To col.Count: arr(i - 1) = col(i): Next
    Worksheets(arr).Select
End Sub
Наверно написано то что надо, но не могу связать со своим примером и привязкой к ячейкам на листе График где перечислены названия листов которые надо выделить одновременно.
autostavrroute вне форума Ответить с цитированием
Старый 09.06.2018, 10:04   #16
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от autostavrroute Посмотреть сообщение
Наверно написано то что надо, но не могу связать со своим примером и привязкой к ячейкам на листе График
так:
Код:
Sub SelectSheetsByRange()
 Dim col As New Collection, c As Range, i&
 For Each c In Sheets("График").Range("D5:F5").Cells
        col.Add Trim(c)
 Next
 ReDim arr(0 To col.Count - 1)
 For i = 1 To col.Count: arr(i - 1) = col(i): Next
 Worksheets(arr).Select
End Sub
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.06.2018, 12:03   #17
autostavrroute
Пользователь
 
Регистрация: 07.06.2018
Сообщений: 40
По умолчанию

Код:
Sub SelectSheetsByRange()
 Dim col As New Collection, c As Range, i&, k&
 
 For k = 4 To 17
 If Not Sheets("График").Cells(5, k).Value = "" Then coll.Add Sheets(k).Name
 Next
 
' For Each c In Sheets("График").Range("D5:Z5").Cells
'        col.Add Trim(c)
' Next

 ReDim arr(0 To col.Count - 1)
 For i = 1 To col.Count: arr(i - 1) = col(i): Next
 Worksheets(arr).Select
  
End Sub
Хотел модифицировать на обработку ячеек с пробелами. Но что-то написал не верно.

Предыдущий вариант работает на УРА.


_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось autostavrroute; 09.06.2018 в 12:22.
autostavrroute вне форума Ответить с цитированием
Старый 12.06.2018, 09:48   #18
autostavrroute
Пользователь
 
Регистрация: 07.06.2018
Сообщений: 40
По умолчанию

Цитата:
Сообщение от autostavrroute Посмотреть сообщение
ячеек с пробелами
Точнее сказать "Пустых ячеек" Если не трудно исправьте ошибку.

Цитата:
Сообщение от autostavrroute Посмотреть сообщение
For k = 4 To 17
If Not Sheets("График").Cells(5, k).Value = "" Then coll.Add Sheets(k).Name
Next
Несколько не ладится в этой части макроса.
autostavrroute вне форума Ответить с цитированием
Старый 12.06.2018, 10:24   #19
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
If Sheets("График").Cells(5, k).Value <> "" Then coll.Add Sheets(k).Name

[offtop]2 страницы трепа, а можно было в 1ом сообщении приклеить файла с тестовыми данным, написать "Вот файл, вот список страниц, хочу нажать кнопку и чтоб листы со списка выделились". Я бы предложил их удалить, а дальше коллеги бы наваяли рабочий код. Итого макс на 5 сообщении был бы получен ответ. Но то такое, лирика. [/offtop]
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 12.06.2018, 11:09   #20
autostavrroute
Пользователь
 
Регистрация: 07.06.2018
Сообщений: 40
По умолчанию

Оператор Not там стоит верно - он проверяет если ячейка не пустая тогда добавляет ее в массив. Ошибка где то рядом)
autostavrroute вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выделение нескрытых листов книги Jaroslav Microsoft Office Excel 4 27.05.2014 16:10
VBA - выделение группы листов Tihon Microsoft Office Excel 14 09.01.2013 20:46
Поиск по списку gavrylyuk Microsoft Office Excel 6 25.03.2010 16:24
Загрузка по списку jkpro Работа с сетью в Delphi 23 24.09.2009 17:26
выделение листов по условию Bronyk Microsoft Office Excel 5 11.03.2008 19:40