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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2009, 15:17   #1
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию Условие, если есть лист.

Уважаемые, программисты напишите пожалуйта код условия: "Если в активной книге есть Лист "Оглавление" то ..."
agregator вне форума Ответить с цитированием
Старый 07.12.2009, 15:26   #2
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Код:
Dim wsSh As Worksheet
On Error Resume Next: Set wsSh = Sheets("Оглавление")
If Err.Number <> 0 Then MsgBox "Лист Оглавление отсутствует в книге"
On Error GoTo 0
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 07.12.2009, 15:37   #3
Xpoft
Пользователь
 
Регистрация: 25.11.2009
Сообщений: 55
По умолчанию

Можно и так...
Sub PoiskLista()
For i = 1 To ActiveWorkbook.Worksheets.Count
If ActiveWorkbook.Worksheets(i).Name = "Оглавление" Then
MsgBox ("Есть лист Оглавление")
End If
Next i
End Sub
Не бывает сложных задач, бывают сложные решения
Xpoft вне форума Ответить с цитированием
Старый 07.12.2009, 15:54   #4
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Цитата:
Сообщение от Xpoft Посмотреть сообщение
Можно и так...
Sub PoiskLista()
For i = 1 To ActiveWorkbook.Worksheets.Count
If ActiveWorkbook.Worksheets(i).Name = "Оглавление" Then
MsgBox ("Есть лист Оглавление")
End If
Next i
End Sub
Не мешало бы завершить как минимум цикл, при нахождении нужного листа. Цикл и так не быстрая штука, а если листов много, то можно значительно времени потерять. Да и переменные лучше объявлять сразу.
Код:
Sub PoiskLista()
Dim i as long 'можно и As Integer, но она инициализируется медленнее, но занимает меньше памяти
For i = 1 To ActiveWorkbook.Worksheets.Count
If ActiveWorkbook.Worksheets(i).Name = "Оглавление" Then MsgBox ("Есть лист Оглавление"): Exit For 
'можно сразу Exit Sub, если надо завершить процедцру, а не только цикл
Next i
End Sub
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 07.12.2009, 17:27   #5
Xpoft
Пользователь
 
Регистрация: 25.11.2009
Сообщений: 55
По умолчанию

The_Prist Спасибо за комменты) потихоньку учусь)
Не бывает сложных задач, бывают сложные решения
Xpoft вне форума Ответить с цитированием
Старый 08.12.2009, 07:46   #6
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию

Спасибо, за помощь. Воспользовался первым ответом.
agregator вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Я-чайник (в excel) - у меня есть к Вам просьба, если есть желание и время - помогите. rococococo Microsoft Office Excel 0 04.10.2009 12:16
Подскажите есть ошибка ? (если да то где) eyeofthedemon Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 19.09.2008 10:41
если есть.... то.... -=$V=- Компоненты Delphi 2 17.06.2008 13:02
Помогите реалезовать условие - "Если x целое число то" Кронос Общие вопросы Delphi 5 04.05.2008 16:07
условие если значение = empty zetrix Microsoft Office Excel 0 30.10.2006 18:58