Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Выделить несколько листов при заданном условии - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выделить несколько листов при заданном условии (Макросы/Sub)
Выделить несколько листов при заданном условии
Kamikadze_N Дата: Вторник, 26.07.2016, 08:12 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 5 ±
Замечаний: 0% ±

Excel 2010
Добрый день. В рабочей книге есть несколько листов (их названия не меняются). На одном из листов есть форма формирующая новые листы, названия которых 6ти значные числа.
Нужно выделять эти сформированные листы, отправить их на печать и удалить.
Подскажите пожалуйста, как прописать условие чтобы выделялись все листы попадающие под условие.[vba]
Код

For i = 1 To Sheets.Count Step 1
        If Sheets(i).Name <> "Виды работ" And Sheets(i).Name <> "Справочник МТП" And Sheets(i).Name <> "Трактор номер и водитель" And Sheets(i).Name <> "412-АПК" _
        And Sheets(i).Name <> "Пустой Бланк" And Sheets(i).Name <> "Учет Работы" And Sheets(i).Name <> "Рабочая форма" Then
        arr(i) = Worksheets(i).Name
        End If
    Next
    Sheets(arr).Select
[/vba]
Самое то странное, что ранее код был вот такой.
[vba]
Код

x = 1
    For i = 1 To Sheets.Count
        If Sheets(i).Name <> "Виды работ" And Sheets(i).Name <> "Справочник МТП" And Sheets(i).Name <> "Трактор номер и водитель" And Sheets(i).Name <> "412-АПК" _
        And Sheets(i).Name <> "Пустой Бланк" And Sheets(i).Name <> "Учет Работы" And Sheets(i).Name <> "Рабочая форма" Then
            If x = 1 Then
                Sheets(i).Select
            Else
                Sheets(i).Select Replace:=False
            End If
            x = x + 1
        End If
    Next
[/vba]
И он работал, а в один прекрасный момент перестал работать и выделяется только один лист.
 
Ответить
СообщениеДобрый день. В рабочей книге есть несколько листов (их названия не меняются). На одном из листов есть форма формирующая новые листы, названия которых 6ти значные числа.
Нужно выделять эти сформированные листы, отправить их на печать и удалить.
Подскажите пожалуйста, как прописать условие чтобы выделялись все листы попадающие под условие.[vba]
Код

For i = 1 To Sheets.Count Step 1
        If Sheets(i).Name <> "Виды работ" And Sheets(i).Name <> "Справочник МТП" And Sheets(i).Name <> "Трактор номер и водитель" And Sheets(i).Name <> "412-АПК" _
        And Sheets(i).Name <> "Пустой Бланк" And Sheets(i).Name <> "Учет Работы" And Sheets(i).Name <> "Рабочая форма" Then
        arr(i) = Worksheets(i).Name
        End If
    Next
    Sheets(arr).Select
[/vba]
Самое то странное, что ранее код был вот такой.
[vba]
Код

x = 1
    For i = 1 To Sheets.Count
        If Sheets(i).Name <> "Виды работ" And Sheets(i).Name <> "Справочник МТП" And Sheets(i).Name <> "Трактор номер и водитель" And Sheets(i).Name <> "412-АПК" _
        And Sheets(i).Name <> "Пустой Бланк" And Sheets(i).Name <> "Учет Работы" And Sheets(i).Name <> "Рабочая форма" Then
            If x = 1 Then
                Sheets(i).Select
            Else
                Sheets(i).Select Replace:=False
            End If
            x = x + 1
        End If
    Next
[/vba]
И он работал, а в один прекрасный момент перестал работать и выделяется только один лист.

Автор - Kamikadze_N
Дата добавления - 26.07.2016 в 08:12
KuklP Дата: Вторник, 26.07.2016, 08:28 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1994
Репутация: 435 ±
Замечаний: 0% ±

У Вас одна переменная и для счетчика листов и для индекса массивов. Это неправильно. Дальше и обсуждать не стоит. Что за массив arr? Хотите помощи - не обрывки своего ваяния выкладывайте, а пример согласно Правил.


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеУ Вас одна переменная и для счетчика листов и для индекса массивов. Это неправильно. Дальше и обсуждать не стоит. Что за массив arr? Хотите помощи - не обрывки своего ваяния выкладывайте, а пример согласно Правил.

Автор - KuklP
Дата добавления - 26.07.2016 в 08:28
Kamikadze_N Дата: Вторник, 26.07.2016, 09:06 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 5 ±
Замечаний: 0% ±

Excel 2010
KuklP, Вот файл с примером, Нужно что бы при нажатии на кнопку выделялись только листы которые были ей же и созданы.
К сообщению приложен файл: 2357853.xlsm(23Kb)
 
Ответить
СообщениеKuklP, Вот файл с примером, Нужно что бы при нажатии на кнопку выделялись только листы которые были ей же и созданы.

Автор - Kamikadze_N
Дата добавления - 26.07.2016 в 09:06
RAN Дата: Вторник, 26.07.2016, 09:25 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4277
Репутация: 829 ±
Замечаний: 0% ±

2010
[vba]
Код
    'Выделяем все я листы, кроме "Вид работ" и т.д т.е. все ячейки название которых не соответствует шаблонам
    Dim k&
    ReDim arr(k)
    For i = 1 To Sheets.Count Step 1
        If Sheets(i).Name <> "БазаДанных" And Sheets(i).Name <> "Просто лист" Then
            ReDim Preserve arr(k)
            arr(k) = Sheets(i).Name
            k = k + 1
        End If
    Next
    Sheets(arr).Select
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
    'Выделяем все я листы, кроме "Вид работ" и т.д т.е. все ячейки название которых не соответствует шаблонам
    Dim k&
    ReDim arr(k)
    For i = 1 To Sheets.Count Step 1
        If Sheets(i).Name <> "БазаДанных" And Sheets(i).Name <> "Просто лист" Then
            ReDim Preserve arr(k)
            arr(k) = Sheets(i).Name
            k = k + 1
        End If
    Next
    Sheets(arr).Select
[/vba]

Автор - RAN
Дата добавления - 26.07.2016 в 09:25
Kamikadze_N Дата: Вторник, 26.07.2016, 09:27 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 5 ±
Замечаний: 0% ±

Excel 2010
RAN, Огромное спасибо!
 
Ответить
СообщениеRAN, Огромное спасибо!

Автор - Kamikadze_N
Дата добавления - 26.07.2016 в 09:27
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выделить несколько листов при заданном условии (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!