Добрый день. В рабочей книге есть несколько листов (их названия не меняются). На одном из листов есть форма формирующая новые листы, названия которых 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
У Вас одна переменная и для счетчика листов и для индекса массивов. Это неправильно. Дальше и обсуждать не стоит. Что за массив arr? Хотите помощи - не обрывки своего ваяния выкладывайте, а пример согласно Правил.
У Вас одна переменная и для счетчика листов и для индекса массивов. Это неправильно. Дальше и обсуждать не стоит. Что за массив arr? Хотите помощи - не обрывки своего ваяния выкладывайте, а пример согласно Правил.KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
'Выделяем все я листы, кроме "Вид работ" и т.д т.е. все ячейки название которых не соответствует шаблонам 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