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

Ваш аккаунт

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

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

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

Как можно выйти из цикла With - End with

248
29 февраля 2008 года
Dmitry2064
590 / / 06.12.2006
Сделал так:
 
Код:
With Application.FileSearch
    .NewSearch: .LookIn = "C:\123\": .FileName = "*.pmd": .Execute
If .FoundFiles.Count = 0 Then GoTo skipp
        FPath = Split(.FoundFiles(1), "\") 'тут единица, т.к. файл *.pmd всегда только один.
        FilePath1 = "C:\123\" & FPath(3)
        FilePath2 = "C:\1234\" & FPath(3)
        fso1.CopyFile FilePath1, FilePath2, True
End With
skipp:

Можно ли как-то иначе покинуть эту конструкцию, нежели с помощью goto?

И еще вопрос. У меня не получилось избежать прямого указания номера в массиве FPath(3). Подскажите пожалуйста, как использовать Ubound в данном случае.
Спасибо.
24K
29 февраля 2008 года
Mixalov_Aleksandr
40 / / 13.01.2008
Наверно выйти из цикла With можно так- EXIT With.
Может я неправ, давно на Visual Basic не писал.
251
01 марта 2008 года
SkyMаn
1.7K / / 31.07.2007
With...End With - это не цикл, а конструкция, которая облегчает при написании кода получать доступ к переменным внутри контейнера.
248
01 марта 2008 года
Dmitry2064
590 / / 06.12.2006
Точно. Без отсыла к метке не обойтись.
251
01 марта 2008 года
SkyMаn
1.7K / / 31.07.2007
А вот этого делать нельзя. Забудтьте пор GoTo/GoSub!
Лучше найдите другой путь. Ведь он есть и как минимум - один.
248
02 марта 2008 года
Dmitry2064
590 / / 06.12.2006
Верно. Все делается проще пареной репы. Вместо:
If .FoundFiles.Count = 0 Then GoTo skipp
надо:
If .FoundFiles.Count <> 0 Then
...
copy что-то там куда-то там
...
End if
И никаких goto!
Спасибо за стимуляцию мозгов ;-)))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог