| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > Вопрос по оператору сравнения |
| Автор: Shellcom 14.4.2004, 15:40 |
| Кто подскажет, возможно-ли как нибудь прописать в макросе такой блок и если да, то как? Есть список наименований в экселе и существуют листы с именами из этого списка наименований. Если программа не обнаружит листа с именем из списка, то нужно сообщение. А так ошибку лепит. Если есть лист с именем в списке то программа работает. Function Perenos() ' Dim Stroka, Stolbec, Naim_BD Stroka = 6 Stolbec = 2 Naim_BD = Worksheets("Прайс").Cells([Stroka], [Stolbec]) Do While Worksheets("Прайс").Cells([Stroka], [Stolbec]) <> "" 'Ищет конец списка а в процессе идёт проверка If Sheets(Naim_BD).Name = Naim_BD Then 'Проблемное место!!!! MsgBox "ok!" Else MsgBox "Нет такого листа!" End If Stroka = Stroka + 1 Naim_BD = Worksheets("Прайс").Cells([Stroka], [Stolbec]) Loop Msgbox "Конец" End Function |
| Автор: Guest 14.4.2004, 16:34 | ||
Только пару замечаний 1. Это нифига не Function , а таки Sub 2. Не элегантный код - можно вполней обойтись и без If |
| Автор: Shellcom 14.4.2004, 17:16 |
| Спасибо! Получилось сразу. Это всё таки Function, просто показал кусок. Лабаю програмку а в качестве БД у меня листы. И если в список добавится новый элемент, то будет создан новый лист для него с таким же именем. А код неэлегантный, потому что самоучка. Спасибо Guest!!! |
| Автор: Shellcom 15.4.2004, 11:00 |
| Ещё вопросик! Эта строка перемещает лист "Naim_BD" третьим по расположению. Sheets(Naim_BD).Move After:=Sheets(3) А есть-ли команда отпраляющая лист в конец? Добавлено @ 11:01 Забыл добавить! Независимо от количества листов! Так как в конец нужно отправлять вновь созданные. |