Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Обработка возвращаемого значения Excel в VFP6.0 / 11 сообщений из 11, страница 1 из 1
22.09.2005, 14:39
    #33283825
Mr.Dan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка возвращаемого значения Excel в VFP6.0
Как обработать возвращаемые значения из Excel? В данном случае мне нужно сделать поиск определенной строки в столбце и если она существует, то узнать её адрес и выполнить определенные действия. Как это реализовать? Остановился вот на чем:
Код: plaintext
1.
2.
3.
4.
5.
oXL=CREATEOBJECT("Excel.Application")
oXL.Workbooks.Open(m.sFileBPK)
oXL.DisplayAlerts =.f.
Res = oXL.ActiveSheet.Range("X:X").Find( 2124222233 )
&& Как дальше быть???
...
Рейтинг: 0 / 0
22.09.2005, 15:19
    #33283956
Sexton666
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка возвращаемого значения Excel в VFP6.0
В твоем случае не знаю.

Но вот как можно в тупую перебором сделать

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
tmpsheet=getobject([], [excel.sheet])
XLApp=tmpsheet.application
lExcel=XLApp.visible
XLApp.workbooks.open(cBook)
XLBook=XLApp.activeworkbook
XLSheet=XLBook.worksheets(cSheet)
FOR i= 1  TO кол-во строк
xlValue=XLSheet.cells(i, номер столбца).value
if xlValue=(искомое)
//делаешь то что тебе нужно
endif
next

...
Рейтинг: 0 / 0
22.09.2005, 15:35
    #33284021
Mr.Dan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка возвращаемого значения Excel в VFP6.0
По всем записям пройтись в данном случае не очень подходит, т.к. искомое значение присутствует в одном экземпляре (уникальный идентификатор) и смысла перебирать все записи нет. Да и по скорости эта операция будет ИМХО дольше выполняться.

P.S. Как vba-шными методами узнать кол-во строк в листе excel?
...
Рейтинг: 0 / 0
22.09.2005, 16:26
    #33284226
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка возвращаемого значения Excel в VFP6.0
Я делаю так:
#DEFINE xlLastCell 11

lnMaxRow = loExcel.Range("A1").SpecialCells(xlLastCell).Row
lnMaxColumn = loExcel.Range("A1").SpecialCells(xlLastCell).Column

С уважением, Алексей.
...
Рейтинг: 0 / 0
22.09.2005, 16:31
    #33284252
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка возвращаемого значения Excel в VFP6.0
Res = oXL.ActiveSheet.Range("X:X").Find(2124222233) .Address
...
Рейтинг: 0 / 0
14.03.2006, 15:04
    #33599691
Gabit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка возвращаемого значения Excel в VFP6.0
У меня тоже возникла проблема с поиском.
На эту команду
Код: plaintext
1.
Res = oXL.ActiveSheet.Range("X:X").Find( 2124222233 ).Address
он ругается
Код: plaintext
1.
Member FIND does not evaluate to an object

А если так
Код: plaintext
1.
Res = oXL.ActiveSheet.Range("X:X").Find( 2124222233 )
То как узнать номер найденной строки ?
...
Рейтинг: 0 / 0
14.03.2006, 15:47
    #33599835
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка возвращаемого значения Excel в VFP6.0
Res = oXL.ActiveSheet.Range("X:X").Find(2124222233)
lnRow=Res.Row
...
Рейтинг: 0 / 0
14.03.2006, 21:02
    #33600739
Gabit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка возвращаемого значения Excel в VFP6.0
А когда он не находит запись, тоже свойство Row доступно ?
Он ругается что Res не является объктом ...
...
Рейтинг: 0 / 0
15.03.2006, 08:54
    #33601157
S866
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка возвращаемого значения Excel в VFP6.0
Ну так немного модифицируй код AleksMed

Res = oXL.ActiveSheet.Range("X:X").Find(2124222233)
if vartype('RES')='O'
lnRow=Res.Row
else
*Ничего не найдено
endif
и всего то
...
Рейтинг: 0 / 0
15.03.2006, 09:26
    #33601199
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка возвращаемого значения Excel в VFP6.0
S866Ну так немного модифицируй код AleksMed

Res = oXL.ActiveSheet.Range("X:X").Find(2124222233)
if vartype('RES')='O'
lnRow=Res.Row
else
*Ничего не найдено
endif
и всего то
2 S866 Не подсказывай
Только VARTYPE(RES)

2 Gabit Не жди 100% решения. Скорее всего тебя подтолкнут в нужном направлении, а дальше сам включай соображалку и вперед (без обид) :)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
18.11.2009, 12:10
    #36316915
Gabit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка возвращаемого значения Excel в VFP6.0
Возник вопрос по данной теме.
Какая переменная содержит код ошибки ?
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Обработка возвращаемого значения Excel в VFP6.0 / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]