Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как задать приоритет поиска?

248
04 января 2008 года
Dmitry2064
590 / / 06.12.2006
Такой хитрый вопрос (вернее будет хитрый ответ).
В папке происходит поиск документов без "плюсика" в названии (т.е. тех,которые еще не обработаны). Но у этих документов желателен приоритет в обработке.
Вспомогательная инфа: при поиске по названию первого же найденного документа (без плюсика) курсор в екселевской таблице выставляется на соответствующую ячейку (ячейки coпоставлены названиям документов). Вот как задать приоритет для обработки, если известно, что эти приоритетные документы находятся в ячейках с А3 по А16, а неприоритетным докам соответствуют бо'льшие номера ячеек.
Т.е. как подписать в процедуру доп. проверку номера по такому правилу:
ищи документы (которые без плюсика)
Если таковой нашелся, то если
номер его ячейки больше А16, то искать дальше, чтобы номер был меньше. Если таковых больше нет, обработать этот.


Вот как выглядит Sub на данный момент (сокращено и опять же ненавистный Goto :o - на данном этапе познаний мне так попроще):

Код:
Sub IsDoc() 'проверка наличия, которые можно обработать
Dim iPath, iPathA, iFName As String
iPath = "E:\Downloads\Docs\"
   
    iFName = Dir(iPath & "*.doc")
    Do While iFName <> ""
    If InStr(iFName, "+") Then GoTo Nnn 'т.е. если с плюсиком,
    'то уже ничего не надо делать с этим доком, а искать дальше
If InStr(LCase(iFName), "банки") Then Range("A4").Font.ColorIndex = 2: Range("A4").Select: GoTo Calll
If InStr(LCase(iFName), "машинос") Then Range("A7").Font.ColorIndex = 2: Range("A7").Select: GoTo Calll
If InStr(LCase(iFName), "транспорт") Then Range("A15").Font.ColorIndex = 2: Range("A15").Select: GoTo Calll
If InStr(LCase(iFName), "экономика") Then Range("A16").Font.ColorIndex = 2: Range("A16").Select: GoTo Calll

If InStr(LCase(iFName), "автопром") Then Range("A32").Font.ColorIndex = 2: Range("A32").Select: GoTo Calll
If InStr(UCase(iFName), "АПК") Then Range("A33").Font.ColorIndex = 2: Range("A33").Select: GoTo Calll
If InStr(LCase(iFName), "дорстро") Then Range("A35").Font.ColorIndex = 2: Range("A35").Select: GoTo Calll
If InStr(LCase(iFName), "метро") Then Range("A36").Font.ColorIndex = 2: Range("A36").Select: GoTo Calll

Calll:
Call DocVWord: Exit Sub

Nnn:
    iFName$ = Dir
    Loop
End Sub
251
13 января 2008 года
SkyMаn
1.7K / / 31.07.2007
многабукафф..
Напишите, что надо сделать. Желательно одним-двумя предложениями.
248
14 января 2008 года
Dmitry2064
590 / / 06.12.2006
Надо документы, у которых номер ячейки меньше например 20 (т.е. в списке находятся выше двадцатого ряда), открывать в Ворде в первую очередь. По алфавиту же сначала будет найден документ с названием "Авто", а уж потом "Банки". А обработать надо сначала "Банки" (и т.д.).
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог