Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 как отловить ошибку макроса excel в foxpro  [new]
G30071
Member

Откуда:
Сообщений: 11
Выполняю макрос из foxpro :
oleApp.ActiveWorkBook.VBProject.VBComponents.Import (Sys(5)+Sys(2003)+"\progs\myfile.bas")
	
With oleApp
		.Visible = .f.
		
	oleApp.Run("myMacro")

	
	Endwith


Собственно объект excel создан макрос загружен и выполнен, но в процессе выполнения я делаю некоторые проверки,
например с какой строки начинается блок данных. И если строка не та даю Messagebox и останавливаю макрос. Но все это видно внутри excel объекта который скрыт. Как передать обратно в fox результат успеха или провала макроса?
Может у объекта oleApp есть свойство последней ошибки Err или еще что-то?
18 сен 16, 14:55    [19679325]     Ответить | Цитировать Сообщить модератору
 Re: как отловить ошибку макроса excel в foxpro  [new]
alextashk
Member

Откуда:
Сообщений: 431
G30071,

выводить ошибки не только в messagebox, но и в файл.
А файл потом парсить.
18 сен 16, 15:54    [19679403]     Ответить | Цитировать Сообщить модератору
 Re: как отловить ошибку макроса excel в foxpro  [new]
G30071
Member

Откуда:
Сообщений: 11
Выводить в файл, потом загружать его , парсить - это как то не красиво, и долго. Хотя как вариант можно рассматривать.
Думаю есть что-то типа свойства объекта с последней ошибкой или массивом ошибок выполнения макроса.
18 сен 16, 16:53    [19679533]     Ответить | Цитировать Сообщить модератору
 Re: как отловить ошибку макроса excel в foxpro  [new]
правильный проходящий.
Guest
G30071
Выводить в файл, потом загружать его , парсить - это как то не красиво, и долго. Хотя как вариант можно рассматривать.
Думаю есть что-то типа свойства объекта с последней ошибкой или массивом ошибок выполнения макроса.
И наверняка думаете, что это должны знать знатоки фокса, а не знатоки Excel/VBA? Ведь это должно быть создано конкретно для фокса, не так ли?
18 сен 16, 18:52    [19679802]     Ответить | Цитировать Сообщить модератору
 Re: как отловить ошибку макроса excel в foxpro  [new]
G30071
Member

Откуда:
Сообщений: 11
автор
И наверняка думаете, что это должны знать знатоки фокса, а не знатоки Excel/VBA? Ведь это должно быть создано конкретно для фокса, не так ли?

Не уверен, что правильно понял вашу мысль, но те кто работает с макросами excel в foxpro наверняка сталкивались с обработкой ошибок в макросе. И вот у них я и спрашиваю совета.
19 сен 16, 13:45    [19682652]     Ответить | Цитировать Сообщить модератору
 Re: как отловить ошибку макроса excel в foxpro  [new]
Dima T
Member

Откуда:
Сообщений: 15272
G30071
автор
И наверняка думаете, что это должны знать знатоки фокса, а не знатоки Excel/VBA? Ведь это должно быть создано конкретно для фокса, не так ли?

Не уверен, что правильно понял вашу мысль, но те кто работает с макросами excel в foxpro наверняка сталкивались с обработкой ошибок в макросе. И вот у них я и спрашиваю совета.

Подозреваю мало кто работает с макросами. Зачем они, если вместо вызова макроса можно весь код макроса на фоксе повторить.
19 сен 16, 13:48    [19682679]     Ответить | Цитировать Сообщить модератору
 Re: как отловить ошибку макроса excel в foxpro  [new]
правильный проходящий.
Guest
G30071
те кто работает с макросами excel в foxpro
И много таких видели? Я, кажется, всего одного. За ...дцать лет.
наверняка сталкивались с обработкой ошибок в макросе. И вот у них я и спрашиваю совета.
С обработкой ошибок в макросе чаще всего сталкиваются писатели макросов. А пишут они их на VBA, а отнюдь не на фоксе.
19 сен 16, 13:53    [19682716]     Ответить | Цитировать Сообщить модератору
 Re: как отловить ошибку макроса excel в foxpro  [new]
G30071
Member

Откуда:
Сообщений: 11
Если вы не обрабатываете объемы внешних данных с разной структурой, которые надо иногда немного подправить, то вопрос не к вам.

А повторять уже готовый макрос перекладыванием в fox это обезьяний труд, т.к. макрос отлажен и готов к запуску, зачем его перекладывать?

В общем с вами все ясно.
19 сен 16, 14:32    [19682887]     Ответить | Цитировать Сообщить модератору
 Re: как отловить ошибку макроса excel в foxpro  [new]
T1gRa_NT
Member

Откуда:
Сообщений: 116
Обрабатывают объемы внешних данных в FoxPro, а в Excel выводят уже готовые, со всякими свиристелками и тд. т.е. используют как отчет.
19 сен 16, 15:19    [19683207]     Ответить | Цитировать Сообщить модератору
 Re: как отловить ошибку макроса excel в foxpro  [new]
G30071
Member

Откуда:
Сообщений: 11
автор
Обрабатывают объемы внешних данных в FoxPro, а в Excel выводят уже готовые, со всякими свиристелками и тд. т.е. используют как отчет.


внешние данные и есть изначально в excel. У этих excel данных немного разнится структура, макрос в excel написать пара минут и отдебажить его в экселе, перекладывание этого макроса в fox - пустая трата времени и сил, тем более что он не один будет их много.

Ну не будете же вы спорить что макрос легче писать в fox чем в excel который его пишет на автомате?

Короче я все понял, "знатоки" могут отдыхать =)
20 сен 16, 10:20    [19686150]     Ответить | Цитировать Сообщить модератору
 Re: как отловить ошибку макроса excel в foxpro  [new]
T1gRa_NT
Member

Откуда:
Сообщений: 116
G30071
excel который его пишет на автомате?


Улыбнуло) что-то я не видел реально быстрых и нужных макросов записанных макрорекордером excel.
Если вы мне расскажите как в excel автоматически записать макрос использующий массивы и словари, то буду очень признателен.

G30071
внешние данные и есть изначально в excel.


А зачем вам тогда прослойка FoxPro исправляли бы сразу макросами в Excel.
У меня тоже встречаются такие задачки где надо преобразовать данные excel в другой excel и мне иногда легче сделать это через Fox.
Но в таких случаях я предпочитаю встраивать проверки на корректность при заборе из excel, а никак не путать макросы и fox в 1 флаконе. Макросы при необходимости отрабатывают потом, уже по готовым и правильным данным из FoxPro.
20 сен 16, 16:35    [19688384]     Ответить | Цитировать Сообщить модератору
 Re: как отловить ошибку макроса excel в foxpro  [new]
G30071
Member

Откуда:
Сообщений: 11
T1gRa_NT
автор
Улыбнуло) что-то я не видел реально быстрых и нужных макросов записанных макрорекордером excel.

Что вас улыбнуло? Искаженный смысл?
Я говорил про скорость создания макроса для обработки исходной excel таблицы. А не сравнивал быстродействие выполнения макроса excel и fox/
Если вы чего-то не видели, то с опытом разнообразных задач это придет.

автор
А зачем вам тогда прослойка FoxPro исправляли бы сразу макросами в Excel.

А затем, что есть уже структура готовой базы в fox куда надо импортировать данные из excel структура таблиц которых немного отличается. Которую надо подправить макросом excel И эти макросы будут для каждой таблицы немного свои. Но таблицы очень большие и писать макрос в fox дело неудобное и времязатратное. В excel же это занимает пару минут.

Я уже понял, что по заданному вопросу вам сказать нечего, но зачем пытаться умничать на тему - "это никому не нужно" и "так никто не делает"?
Не делаете, не умеете , не знаете, не надо отвечать, проходите мимо.
21 сен 16, 13:59    [19692203]     Ответить | Цитировать Сообщить модератору
 Re: как отловить ошибку макроса excel в foxpro  [new]
Ffffffffffffffffff
Guest
G30071,
пишите ошибки в поля Excel и считывайте оттуда. Проще всего.
21 сен 16, 18:33    [19693649]     Ответить | Цитировать Сообщить модератору
 Re: как отловить ошибку макроса excel в foxpro  [new]
Ffffffffffff
Guest
Вот, что нам говорит help Excel:


The properties of the Err object are set by the generator of an error — Visual Basic, an object, or the programmer.

The default property of the Err object is Number. Because the default property can be represented by the object name Err, earlier code written using the Err function or Err statement doesn't have to be modified.

When a run-time error occurs, the properties of the Err object are filled with information that uniquely identifies the error and information that can be used to handle it. To generate a run-time error in your code, use the Raise method.

The Err object's properties are reset to zero or zero-length strings ("") after an Exit Sub, Exit Function, Exit Property or Resume Next statement within an error-handling routine. Using any form of the Resume statement outside of an error-handling routine will not reset the Err object's properties. The Clear method can be used to explicitly reset Err.

Use the Raise method, rather than the Error statement, to generate run-time errors for system errors and class modules. Using the Raise method in other code depends on the richness of the information you want to return.

The Err object is an intrinsic object with global scope. There is no need to create an instance of it in your code
21 сен 16, 18:56    [19693725]     Ответить | Цитировать Сообщить модератору
 Re: как отловить ошибку макроса excel в foxpro  [new]
G30071
Member

Откуда:
Сообщений: 11
Спасибо Ffffffffffff , alextashk за Ваши варианты. На будущее подумаю.
А пока я нашел выход, не очень красивый, но прокатывает.
30 сен 16, 15:04    [19729057]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить