Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Добавка обработчика ошибок в пользовательскую функцию - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Добавка обработчика ошибок в пользовательскую функцию (Макросы/Sub)
Добавка обработчика ошибок в пользовательскую функцию
АлексейАльтман Дата: Понедельник, 30.04.2018, 22:47 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Всем доброго времени суток.
Вопрос по вба:

Есть пользовательская функция, которая выдает ширину и высоту фотофайла по ссылке.
Однако иногда - раз в сто срабатываний - она выдает ошибку #ЗНАЧ!
Может с файлами jpg что-то не так.

Как должен выглядеть этот код, с добавкой обработчика ошибок (On Error ...) ?
Чтобы если уж ошибка появлялась, то обработчик (On Error ...) - просто бы выдавал не ошибку #ЗНАЧ!, а простое отсутствие срабатывания - и пользовательская функция ждала бы следующего срабатывания.
[vba]
Код

Function Razmer(ByVal sFilePath) As String
    Dim objShell As Object
    Dim objFolder As Object
    Dim objItem As Object
    Dim strDate$
    Dim ObjFile As Object
    
    Set ObjFile = CreateObject("Scripting.FileSystemObject").getfile(sFilePath)
    Set objFolder = CreateObject("Shell.Application").Namespace(ObjFile.parentFolder.Path)
    Set objItem = objFolder.Items.Item(ObjFile.Name)
    strDate = objFolder.GetDetailsOf(objItem, 31)
    Set objItem = Nothing: Set objFolder = Nothing: Set ObjFile = Nothing
    Razmer = strDate
End Function
[/vba]
 
Ответить
СообщениеВсем доброго времени суток.
Вопрос по вба:

Есть пользовательская функция, которая выдает ширину и высоту фотофайла по ссылке.
Однако иногда - раз в сто срабатываний - она выдает ошибку #ЗНАЧ!
Может с файлами jpg что-то не так.

Как должен выглядеть этот код, с добавкой обработчика ошибок (On Error ...) ?
Чтобы если уж ошибка появлялась, то обработчик (On Error ...) - просто бы выдавал не ошибку #ЗНАЧ!, а простое отсутствие срабатывания - и пользовательская функция ждала бы следующего срабатывания.
[vba]
Код

Function Razmer(ByVal sFilePath) As String
    Dim objShell As Object
    Dim objFolder As Object
    Dim objItem As Object
    Dim strDate$
    Dim ObjFile As Object
    
    Set ObjFile = CreateObject("Scripting.FileSystemObject").getfile(sFilePath)
    Set objFolder = CreateObject("Shell.Application").Namespace(ObjFile.parentFolder.Path)
    Set objItem = objFolder.Items.Item(ObjFile.Name)
    strDate = objFolder.GetDetailsOf(objItem, 31)
    Set objItem = Nothing: Set objFolder = Nothing: Set ObjFile = Nothing
    Razmer = strDate
End Function
[/vba]

Автор - АлексейАльтман
Дата добавления - 30.04.2018 в 22:47
Karataev Дата: Понедельник, 30.04.2018, 23:54 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1247
Репутация: 479 ±
Замечаний: 0% ±

Excel
Предположу, что ошибка из-за того, что в объекте "objFolder" находится Nothing (я пока разбирался в этом коде наблюдал странное поведение в этой строке кода).


Киви-кошелек: 9166309108
Яндекс-деньги: 410014131888288


Сообщение отредактировал Karataev - Вторник, 01.05.2018, 07:55
 
Ответить
СообщениеПредположу, что ошибка из-за того, что в объекте "objFolder" находится Nothing (я пока разбирался в этом коде наблюдал странное поведение в этой строке кода).

Автор - Karataev
Дата добавления - 30.04.2018 в 23:54
АлексейАльтман Дата: Вторник, 01.05.2018, 01:13 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Karataev, не работает. если раньше выдавал в ячейку результат - например "800 x 700"
То теперь пишет слово "Размеры" - и все.
 
Ответить
СообщениеKarataev, не работает. если раньше выдавал в ячейку результат - например "800 x 700"
То теперь пишет слово "Размеры" - и все.

Автор - АлексейАльтман
Дата добавления - 01.05.2018 в 01:13
Karataev Дата: Вторник, 01.05.2018, 07:55 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 1247
Репутация: 479 ±
Замечаний: 0% ±

Excel
Изменил макрос в посте 2.


Киви-кошелек: 9166309108
Яндекс-деньги: 410014131888288
 
Ответить
СообщениеИзменил макрос в посте 2.

Автор - Karataev
Дата добавления - 01.05.2018 в 07:55
АлексейАльтман Дата: Вторник, 01.05.2018, 14:38 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Karataev, спасибо.
Буду тестировать.
 
Ответить
СообщениеKarataev, спасибо.
Буду тестировать.

Автор - АлексейАльтман
Дата добавления - 01.05.2018 в 14:38
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Добавка обработчика ошибок в пользовательскую функцию (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2018 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!